实例化两个其他对象之间的对象

时间:2013-09-26 20:41:20

标签: unity3d

我当前能够移动两个物体(两个栅栏杆)并在两者之间伸展一个物体,作为栅栏中的电线。 有关详细信息,请查看已解决的问题:instantiate plane with texture between two objects(vectors)

我很欣赏一些关于如何在中间实例化极点以及使用已经有效的线路的输入。 例如,每当两个物体之间的距离上升时,例如1。 我像这样计算距离:         Vector3.Distance(currentPole1.position,currentPole2.position));

猜猜一个for循环可以做检查,但似乎无法弄清楚这个。 日Thnx, Kro

1 个答案:

答案 0 :(得分:0)

给定两个Vector3坐标p1p2,我们可以计算它们之间均匀分布的X点:

Vector3 p1 = <some vector>
Vector3 p2 = <some vector>
int numPoints = 9;

float step = 1f / (numPoints+1);
for (float perc = step; perc < 1f; perc += step) {
    Vector3 v = Vector3.Lerp(p1, p2, perc);
    //do something at position v
}

或者我们可以计算几个点,每个点间隔最多X个单位:

Vector3 p1 = <some vector>
Vector3 p2 = <some vector>
float maxSpacing = 10f;

Vector3 diff = p2 - p1;
Vector3 dir = diff.normalized;
float totalDistance = diff.magnitude;
for (float dist = maxDistance; dist < totalDistance; dist += maxSpacing ) {
    Vector3 v = p1 + dir * dist;
    //do something at position v
}

(刚刚注意到我的示例代码是在C#中,你之前的问题是使用JS;大概你可以找出差异吗?)