最近对Transform.LocalToWorldMatrix的矩阵很好奇,想知道它具体是怎么得到的,于是做了验证。
- 旋转顺规
首先,unity的旋转顺规世界系下是zxy,自身系是yxz,可以这样理解:
世界系下zxy顺规:表示的是别的系转到世界系下的顺规,而且是以z-x-y旋转先后顺序旋转。如,局部系L先绕z轴转到1系下,1系绕x轴转到2系下,2系绕y轴转到世界系W下。公式表示(这个公式对应LocalToWorldMatrix,R表示旋转矩阵):
自身系下yxz顺规:表示别的系转局部系的顺规,是以y-x-z先后顺序旋转。如,世界系W先绕y轴转到1系下,1系绕x轴转到2系下,2系绕z轴转到局部系L下。公式表示(这个公式对应WorldToLocalMatrix):
- 旋转欧拉角
对于Inspector面板上的transform组件,在Rotation中的xyz旋转角都是在世界系下的旋转角。不用改符号直接用于局部系转世界系中。
对于下图局部系z轴,由世界系转成局部