Unity, поверните объект по оси и вернитесь к начальной точке в том же направлении - PullRequest
0 голосов
/ 13 мая 2018

Я хочу вращать объект в направлении Y с постоянной скоростью.Когда я остановлюсь, я хочу повернуть назад к Quaternion.identity в том же направлении.

public bool spin;
public float speed;

private void Update() {
    if (spin) {
        transform.Rotate (-Vector3.up, Time.deltaTime * speed, Space.World);
    } else if (transform.rotaion != Quaternion.identity) {
        transform.rotation = Quaternion.RotateTowards (transform.rotation, Quaternion.identity, Time.deltaTime * speed);
    }
}

Это прекрасно работает, но вращается обратно в противоположном направлении.Как вы заставляете его вращаться в первоначальном направлении к Quaternion.identity?

1 Ответ

0 голосов
/ 13 мая 2018

Это прекрасно работает, но вращается обратно в противоположном направлении.

RotateTowards выберет кратчайший путь к своей цели - в любом направлении, которое может быть.

Как заставить его вращаться в первоначальном направлении к Quaternion.identity?

Обратное направление, когда вращение проходит на 180 градусов (или наполовину):

var dir = transform.eulerAngles.y < 180f ? 1f : -1f;
Quaternion.RotateTowards(rotation, Quaternion.identity, Time.deltaTime * speed * dir);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...