Почему значение X вращения отличается от Y и Z на объектах Unity? - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть следующий код:

private void Update()
{
    Vector3 currRotation = transform.localRotation.eulerAngles;
    currRotation = new Vector3(currRotation.x + 2, currRotation.y, currRotation.z);
    transform.localRotation = Quaternion.Euler(currRotation);
}

Все, к чему прикреплен скрипт, будет вращаться вокруг оси X.

Меня не интересуют другие способы поворота объект, так как это небольшая модель того, как я обрабатываю вращение объекта в создаваемом приложении.

когда я добавляю «+1» к координатам Y и Z, он продолжает вращаться Однако, когда он на X, он ведет себя по-другому. Когда X проходит 90-градусную отметку и установлен, он, кажется, вычитает из 90 вместо того, чтобы продолжать добавлять его.

Поэтому, когда я устанавливаю X в 94, в следующий раз, когда я читаю X, это 86.

Почему он это делает?

1 Ответ

1 голос
/ 15 апреля 2020

Проблема, которую вы видите, является проблемой из-за Gimbal Lock. Проверьте следующее: https://answers.unity.com/questions/573035/avoiding-gimbal-lock.html

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