Unity 欧拉角万向节锁的原理
网上文章很多,有些写的很详细,但是我个人理解起来有不是很顺畅,把几个重要的知识点整理一下 欧拉角 :欧拉角用于控制物体的旋转角度,在Unity中欧拉角的表示就是一个Vector3,例如 Vector3 v3 = new Vector3(30,30,30) Unity的欧拉角 旋转顺序 是 Z-X-Y,这个旋转顺序在不同的软件,行业有所不同,没有一个全球统一标准。 旋转顺序 :同样的输入值,不同的旋转顺序,得到的结果不同 静态欧拉角 :旋转的参考坐标系保持不变(Space.World),这种情况不产生万向节锁 动态欧拉角 :旋转的参考坐标系为物体自身的局部坐标系(Space.Self),特定情况下会产生万向节死锁 万向节死锁 : 中间旋转顺序轴(X) 旋转90°,使前顺序轴(Z)和 世界坐标系 的后顺序(Y)轴重叠,这样在世界坐标系的观察空间内,物体绕自己的Z轴旋转,就跟物体绕着世界坐标系的Y轴旋转一样,这样看物体坐标的Z轴自由度似乎消失了,这种情况就称为万向节死锁。 欧拉角存在多对一的关系,即物体的最终旋转情况,可以用多个欧拉角来表示,例如 Vector3(90,30,30) 等价于 Vector3(90,20,20) 且慢,我刚刚,看到一个跟规定不符合的情况,Uniyt的旋转顺序似乎是 Y-X-Z !!!!!!为什么大家都说是Z-X-Y啊?? 如果是Y-X-Z