Как повернуть спрайт на 90 ° - PullRequest
0 голосов
/ 21 февраля 2019

Я играю в лабиринт в Unity и хочу, чтобы персонаж был направлен на клавиатуру стрелки на клавиатуре, «когда игрок нажимает вправо, персонаж должен быть направлен вправо»

Вот что я получил до сих пор:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MovimentoBola : MonoBehaviour
{
public float speed = 10.0f;
public float rotationSpeed = 100.0f;
public GameObject skull;
float posx, posy;
float rotx, roty, rotz; 



void Start()
{
    posx = Time.deltaTime * speed;
    posy = Time.deltaTime * speed;
    rotz = skull.transform.rotation.z;
}


void Update()
{
    if (Input.GetKey(KeyCode.UpArrow)) //Seta pra cima
    {
        transform.Translate(new Vector3(0, posy));            
    }
    if (Input.GetKey(KeyCode.DownArrow)) //Seta pra baixo
    {
        transform.Translate(new Vector3(0, -posy));
    }
    if (Input.GetKey(KeyCode.RightArrow)) //Seta pra direita
    {
        transform.Translate(new Vector3(posx, 0));
        rotz += 90;
    }              
    if (Input.GetKey(KeyCode.LeftArrow)) //Seta pra esquerdas
    {
        transform.Translate(new Vector3(-posx, 0));
    }
    }
}

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

То есть вы хотите, чтобы спрайт отражал направление нажатия игрока?

Самый простой способ - захватить SpriteRender и перевернуть значение X.Примерно так:

var sprite = GetComponent<SpriteRenderer>().flipX = true;

Это перевернет спрайт по оси X, и вам не придется возиться с преобразованиями, и он сохранит все анимации.Чтобы вернуться, вы просто установите его обратно в false.

0 голосов
/ 21 февраля 2019

Вы можете попытаться повернуть спрайт с помощью transform.Rotate(0, 0, 90); или, если вы допустили 1 спрайт для каждого направления, измените спрайт с помощью gameObject.GetComponent<Sprite>().sprite = yourSprite

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...