在给定自定义轴的情况下,尝试查找从a点到b点的距离。我有一些照片可以帮助我更好地解释:
我试图在两个自定义轴上找到红色到粉红色(或灰色)的距离。轴从红色到绿色(轴RG),轴从红色到蓝色(轴RB)。
答案 0 :(得分:4)
你问的是vector projection。
鉴于两个向量A
和B
,A
投射到B
是什么?
在您的情况下,A
似乎是红色和粉红色之间的差异,其中B
就是您所谓的自定义轴。
计算此投影通常涉及点积。幸运的是,Unity提供了Vector3.Dot
来简化这一过程。
我们可以将投影计算为标量。 A在B方向是“这么多”:
float projScalar = Vector3.Dot(A, B.normalized);
这给了我们你要问的长度。
如果需要,我们可以将该结果转换为向量,方法是将该长度转换为B:
Vector3 projVector = B.normalized * projScalar;