首页 > 解决方案 > 在运行时用 Unity 中的材质填充点之间的区域

问题描述

我正在创建一个随机形状,它是通过在平面上放置点(3 个或更多点)形成的(大部分时间平面是水平的)。连接这些点后,将创建一个封闭的形状(点和线的多边形)。

我想用纹理或材质填充内部区域。

我知道我可以创建一个网格和一个网格渲染器来显示材质,但我不确定如何仅从顶点创建网格。我不知道如何制作网格的三角形。

编辑 1: 我从这个问题中找到了很好的答案:给定一个不规则多边形的顶点列表,如何创建内部三角形来有效地构建一个平面 3D 网格?.

我在解决方案方面面临许多问题。一些方法适用于凸多边形,而另一些方法适用于凹多边形。

此外,一些解决方案在获取三角形之前将凹多边形转换为凸多边形(它使用凸包方法来获取边界)。

此外,将材质添加到创建的网格时,它看起来与原始材质不同。此图像中间的小网格是运行时创建的网格,其材质与背景上的平面网格相同(平面网格是在运行应用程序之前从编辑器创建的)。

材料问题

是否有一个库或插件可以通过将顶点和材质的有序列表传递给它来处理网格的创建?

标签: c#unity3dmesh

解决方案


推荐阅读