我正在尝试让模型在按下按钮时旋转90度-应该简单吧? 好吧,由于某些奇怪的原因,整个系统都是一片混乱。我会很乐意为您解决问题
transform.parent.rotation = Quaternion.Euler(transform.parent.rotation.x, transform.parent.rotation.y , transform.parent.rotation.z);
相反,模型只是沿随机方向旋转,似乎它们根本不应该与我的代码相关。
我启动了游戏以在游戏模式下旋转模型,但是旋转的方式似乎突然变成了蓝色。
我对此感到非常困惑,并且希望能为您提供一些帮助
答案 0 :(得分:2)
您的代码无法按照您的想法工作。
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);
但是无论如何这不会改变旋转。
如果您想绕Y
轴旋转90度,可以像这样添加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);