Я пытаюсь заставить модель поворачиваться на 90 градусов при нажатии кнопки - должно быть просто, правда? Что ж, по какой-то странной причине вся система в беспорядке. Буду признателен за помощь в его исправлении
transform.parent.rotation = Quaternion.Euler(transform.parent.rotation.x, transform.parent.rotation.y , transform.parent.rotation.z);
Вместо этого модель просто вращается в случайных направлениях, которые, кажется, вообще не должны иметь отношения к моему коду.
Я запустил игру, чтобы повернуть модель, пока она находится в игровом режиме, но то, как она вращается, кажется, будто она внезапно меняется неожиданно.
Я действительно смущен этим и был бы признателен за помощь в его исправлении





Ваш код работает не так, как вы думаете.
Quaterinion.Euler ожидает ввода в виде углов Эйлера, но вы вводите (x,y,z) Quaterinon, который состоит из (x,y,z,w), поэтому вы получаете действительно забавное вращение.
https://docs.unity3d.com/ScriptReference/Quaternion.html
Чтобы получить текущие углы Эйлера вашего преобразования, просто используйте transform.eulerAngles (или, в вашем случае, transform.parent.eulerAngles)
var euler = transform.parent.eulerAngles;
transform.parent.rotation = Quaternion.Euler(euler.x, euler.y, euler.z);
Однако это никоим образом не меняет вращение.
Если вы хотите повернуть на 90 градусов вокруг оси Y, вы можете добавить 90, как это
var euler = transform.parent.eulerAngles;
transform.parent.rotation = Quaternion.Euler(euler.x, euler.y+90, euler.z);
Конечно, есть еще более простой способ повернуть Y на 90 градусов.
transform.Rotate(0, 90, 0);
transform.Rotate (0, 90, 0);