CSharp - 沿曲线更新网格

  显示原文与译文双语对照的内容
0 0

我正在寻找一个方法来沿着曲线修改程序网格。 通过在这里曲线上创建参照Vector3点并相应地更新各个网格阵列来( http://docs.unity3d.com/ScriptReference/Mesh.html ) 。

我相信我需要从曲线创建一个 to,通过将每个to索引设置为该转换的曲线转换。 这可以用对象完成,但我不确定这是否适用于vector3数组 E.g:

For (int i = 0; i <items.Length; i++, p++) {//gets the array length of custom mesh
 Transform item = Instantiate(items[i]) as Transform;//instantiates item as transform
 Vector3 position = spline.GetPoint(p * stepSize);//references my curve point and creates position vector each update
 item.transform.localPosition = position;//transforms instantiate item to curve point position
}

第二个问题是,使用这个 array的矢量来添加到我的网格中。 每个网格组件操作相似,因此我将使用三角形作为示例:

初始三角形:( 在开始方法上)

0,2,1
2,3,1 

在每个更新中,我希望自然增加 2个三角形,例如:

2,4,3
4,5,3

( 不幸的是,由于声誉限制,我无法发布图片) 这遵循每个新三角形集的规则:

Triangle I0+2 = (Triangle I1 + 2, Triangle I1 + 1, Triangle I1 +2)
Triangle I0+3 = (Triangle I2 + 2, Triangle I2 + 1, Triangle I1 +2)

Verticies将通过使用曲线中的'实例化'vector3坐标添加到动态 List 中。

我看过一些类似问题的尝试,但是这种更新方法看起来像它的他人选择了网格维度。 显然,考虑到曲线的使用是不切实际的。

时间:原作者:4个回答

0 0

经过多次修改,我找到了答案:

在平行的三个贝塞尔曲线之间进行浮点距离。 在更新存储中把这三个点作为向量。 调整距离var并通过a 循环将所有向量沿每个曲线进入一个 List 。 在每个循环实例上,在 vector2 List 中创建三角形。 一旦计算了点: 创建网格和boom一个可以定制 track/road/path -Just,确保包括网格渲染器,刚体,碰撞器和过滤器。

原作者:
...