我有两个物体(A和B)的世界位置和A的旋转。我如何从A的角度计算从A到B的局部方向?
位置 = x, y, z 旋转 = x, y, z, w
我认为世界的方向应该是:
dir = B - A
magnitude = dir.magnitude()
direction = dir / magnitude
不确定本地指导如何运作?
有很多方法可以实现这一点,您可以使用 GameObject A 中的 worldToLocalMatrix
var dir = A.transform.worldToLocalMatrix.MultiplyVector(dir);
或使用四元数手动计算:
var dir = Quaternion.Inverse(A.transform.rotation) * dir;
结果应该非常相似,除了第二种方式会损失层次结构中的任何规模(无论如何这可能是期望的效果)