Единство переводит точку относительно другой точки - PullRequest
1 голос
/ 07 ноября 2019

У меня есть две точки - скажем, A (x1, y1, z1) и B (x2, y2, z2). Что мне нужно, так это переместить обе эти точки в направлении вектора AB, одновременно нажимая горизонтальную ось. Как я могу добиться этого с помощью метода Translate? Как мне нужно написать что-то вроде этого:

A.translate(pointingVector, Space.World)

Точка B перемещается автоматически, приспосабливая преобразование точки A, поэтому нет необходимости перемещать ее, так как перемещение точки A также будет перемещать вектор AB без измененияего длина и направление.

1 Ответ

1 голос
/ 07 ноября 2019

Если я правильно понимаю, что вы говорите, то это просто вопрос перемещения 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
...