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相对于新的世界中心所返回的位置。

你可能感兴趣的:(unity3d InverseTransformPoint方法)