unity 平移点相对于另一点

Unity translate point relative to another point

我有两点——比方说,A(x1,y1,z1) 和 B(x2,y2,z2)。我需要做的是在按下水平轴的同时将这两个点移动到矢量 AB 的方向。如何使用 Translate 方法实现该目标?就像我需要写这样的东西:

A.translate(pointingVector, Space.World)

B 点自动移动以适应 A 点的变换,因此无需移动它,因为移动 A 点也会移动 AB 矢量而不改变其长度和方向。

如果我理解正确,那么这只是沿着它们创建的 Vector 移动 2 个点的问题。所以首先你需要创建方向向量:

// Gets a vector that points from the first point's position to the second's.
var (or Vector3) direction = p1.position - p2.position;

然后每次按水平轴时,只需将 2 个点的位置增加该向量即可:

p1.position += direction * Time.deltaTime