Почему Camera.transform.Rotate (X, Y, 0) меняет Z? - PullRequest
0 голосов
/ 09 декабря 2018

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

Я пробовал следующие строки:

        float speed = 3.0f;
        float yRotation = speed * fY;
        float xRotation = speed * fX;

        camera.transform.Rotate(-yRotation, xRotation, 0.0f);

Кажется, что работает, но послеНесколько движений джойстика, я вижу, что z-значение вращения камеры изменилось, и это выглядит так:

enter image description here

Кто-нибудь видит очевидную ошибкув моем коде, или проблема находится где-то еще?

1 Ответ

0 голосов
/ 09 декабря 2018

Хорошо, вот как это сделать, я должен использовать eulerAngles:

        yaw += speedH * fX;
        pitch -= speedV * fY;
        pitch = Mathf.Clamp(pitch, -20, 30);
        camera.transform.eulerAngles = new Vector3(pitch, yaw, 0.0f);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...