如何在Unity中旋转Vector3

时间:2018-10-30 06:01:06

标签: c# unity3d vector

我必须使用不同的向量( Vector3 ), V1 V2

需要旋转 V1 以使其对准 V2.normalized 方向。

一些 Quaternion 类方法现在已被弃用,因此我发现的所有内容已过时。

1 个答案:

答案 0 :(得分:2)

假设V1和V2都是两个方向,则您希望V1的方向与V2相同,但要保持其长度:

V1 = V2.normalized * V1.magnitude; // direction from V2, length from V1

如果要平滑过渡:

target = V2.normalized * V1.magnitude;
V1 = Vector3.Lerp(V1, target, Time.deltaTime); // this dampens towards the end

如果您希望V1是指向位置V2的方向,那么我不明白为什么要标准化V2。但无论如何:Quaternion.LookRotation

V1 = Quaternion.LookRotation(V2 - V1, Vector3.up).eulerAngles;