0

我目前能够移动两个物体(两个栅栏杆)并在它们之间拉伸一个物体,充当栅栏中的电线。在这里查看已解决的问题以获取更多信息:在两个对象(向量)之间使用纹理实例化平面

我将不胜感激有关如何在两者之间实例化极点以及拥有已经工作的电线的一些输入。例如,每次两个对象之间的距离增加例如 1。我计算距离如下: Vector3.Distance(currentPole1.position,currentPole2.position));

并且猜测一个 for 循环可以进行检查,但似乎无法弄清楚这一点。谢谢,克罗

4

1 回答 1

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;大概您可以找出区别?)

于 2013-09-26T22:29:13.290 回答