沿着矢量在3d中找到点

时间:2016-03-17 09:43:12

标签: c# vector unity3d 3d

我在3d空间中有两个点,我想得到它们之间的点列表,它们位于" r"彼此的距离。如何使用统一功能最容易地完成? enter image description here

3 个答案:

答案 0 :(得分:2)

Vector3[] GetPointsInbetween(Vector3 a, Vector3 b, float offset){
    int count = (int)((b - a).magnitude / offset);
    Vector3[] result = new Vector3[count];

    Vector3 delta = (b - a).normalized * offset;

    for (int i = 0; i < count; i++) {
        result[i] = a + delta * i;
        Debug.Log(result[i]);
    }

    return result;
}

.magnitude.normalized是非常昂贵的操作,请尽量避免在Update()中使用此操作

答案 1 :(得分:0)

您可以使用Vector3.MoveTowards http://docs.unity3d.com/ScriptReference/Vector3.MoveTowards.html

来完成此操作

答案 2 :(得分:0)

我不熟悉Unitiy函数,但正式地描述了两点之间的线性插值。点AB之间的线段可以通过参数化形式

来描述
A * s + B * (1-s)

其中s来自[0,1]区间。