Unity中的Matrix4x4类
物体平移旋转⼀般变换底层都是⽤矩阵来表⽰的,⼀般不会⽤到这个类。有时候需要⼀些世界坐标与局部坐标转换的时候,可能就要⽤到了。
1 //创建平移 旋转 缩放矩阵 可以理解为⼀个坐标系(不知道对不对。。)
2 Matrix4x4 mat = Matrix4x4.TRS(new Vector3(1,1,1),Quaternion.Euler(0,90,0),Vector3.one); 3 //得到在这个坐标系点(2,2,2)在世界坐标系的坐标 4 print(mat.MultiplyPoint(new Vector3(2,2,2))); 5 //在世界坐标系点(2,2,2)在mat变换下的坐标 6 //局部坐标*mat = 世界坐标
7 //世界坐标*mat的逆 = 局部坐标
8 print(mat.inverse.MultiplyPoint(new Vector3(2,2,2))); 9 //MultiplyVector⽅法 感觉没啥⽤10 //把⽅向向量dir 做了⼀个旋转11 Vector3 dir = new Vector3(3,2,3);
12 print (mat.MultiplyVector (dir) == Quaternion.Euler (0, 90, 0) * dir);
⼜⼀个⼤雾霾天.....