首页 > 手游开发 > Unity3D > Unity3d InverseTransformPoint方法
2019
09-11

Unity3d InverseTransformPoint方法

官方的说明是,变换位置从世界坐标到自身坐标,Transform.TransformPoint相反。

试验了一下得出这个结论,如果某一个物体A的坐标相对于世界坐标是(1,2,1), 物体target的坐标相对于世界坐标是(3,1,2)

Vector3 targetPos = target.transform.position;
Vector3 newPos = A.transfrom.InverseTransFormPoint(targetPos);
newPos 的值为(2,-1,1)

先说这个newPos是怎么计算的 , newPos的x方向的值我用, Xn表示, y, z,轴方向依次类推

Xn = – ( 1-3 ) = – (Xa – Xtarget) = 2
Yn = – ( 2-1 ) = – (Ya – Ytarget) = -1
Zn = – ( 1-2 ) = – (Za – Ztarget) = 1

这个值代表 物体target相对于物体A的位置, 换句话说, 就是把物体A当做了世界的中心,target相对于新的世界中心所返回的位置

最后编辑:
作者:游戏创作者大陆

留下一个回复

你的email不会被公开。