Unity 5:自动为网格的顶点指定三角形列表

Unity 5: Automatically specifying the triangle list for the vertices of a mesh

有没有一种方法或算法可以自动指定顶点列表的连接方式?

例如,假设我有这个(为简单起见,在 2D 中):

     *(0,0)     *(2,0)

*(-1,-1)   *(1,-1)

所以我按照 (-1,-1),(0,0),(1,-1),(2,0) 的顺序添加顶点 然后在三角形列表中添加索引 0、1、2 和 2、1、3,这将生成一个包含两个三角形的网格。

但是,随着顶点数量的增加,定义三角形的过程变得更加乏味,当然除非我按某种排序顺序添加顶点,以便我可以跟踪我和哪个三角形每次只添加一个偏移量(我不想这样做)。

我要去的地方是这个(为简单起见,还是二维的): 我想定义一个数组,比如:

[0 , 0 , 1 , 0 , 1 , 0]

[0 , 0 , 0 , 0 , 0 , 0]

[0 , 1 , 0 , 1 , 0 , 0]

这将表示 xy 平面,并且该数组中的点是顶点 (1) 或什么都不包含 (0)。因此,array[0,0] 将是 x=0,y=0(无),而 array[2,1](一个顶点)将是 x=1,y=2。使用它,我想生成一个网格。

这可能吗?任何帮助将不胜感激。

谢谢

编辑:我知道有一个三角脚本,但它只适用于 2D。

不,您只需手动执行即可。

就是这样。

请注意,使用带有 一行代码 的例程,您可以 "automate" 该过程。

如果您正在学习网格,了解 您不必使用重复的顶点是很重要的,如果您不想 .

祝你好运,恭喜你问了整个星期 Unity3D 标签中唯一有价值的问题:O

(1) 在Unity中编织网格

时,我劝你熟悉一下"gotchya"

http://answers.unity3d.com/answers/417487/view.html

请注意,同一个问题在这里被反复问到。

(2) 我敦促您研究其中的三个链接答案。

(3)这个一定要知道... http://answers.unity3d.com/answers/352167/view.html

(4) 不要忘记记住 Unity 的手性.. http://answers.unity3d.com/answers/267076/view.html


一小点。不用说 你不使用网格碰撞器,在视频游戏中几乎出于任何原因。 Unity 包含这个概念非常令人困惑,它无休止地让新手和业余程序员感到困惑。 (如果您正在构建自己的网格,甚至添加动态碰撞器,您所要做的就是使用大小合适的盒子碰撞器。)

事实证明可以做到。有更复杂的方法来执行此操作,例如 Marching Cubes,但是,它们实施起来相当复杂并且无法工作,因为它们对于实时 运行 来说效率太低(编辑:除非您卸载到GPU).