c# - 在运行时用 Unity 中的材质填充点之间的区域
问题描述
我正在创建一个随机形状,它是通过在平面上放置点(3 个或更多点)形成的(大部分时间平面是水平的)。连接这些点后,将创建一个封闭的形状(点和线的多边形)。
我想用纹理或材质填充内部区域。
我知道我可以创建一个网格和一个网格渲染器来显示材质,但我不确定如何仅从顶点创建网格。我不知道如何制作网格的三角形。
编辑 1: 我从这个问题中找到了很好的答案:给定一个不规则多边形的顶点列表,如何创建内部三角形来有效地构建一个平面 3D 网格?.
我在解决方案方面面临许多问题。一些方法适用于凸多边形,而另一些方法适用于凹多边形。
此外,一些解决方案在获取三角形之前将凹多边形转换为凸多边形(它使用凸包方法来获取边界)。
此外,将材质添加到创建的网格时,它看起来与原始材质不同。此图像中间的小网格是运行时创建的网格,其材质与背景上的平面网格相同(平面网格是在运行应用程序之前从编辑器创建的)。
是否有一个库或插件可以通过将顶点和材质的有序列表传递给它来处理网格的创建?
解决方案
推荐阅读
- html - 表格的滚动条
- python - Pyglet 无法加载 .wav 文件
- javascript - Socket.io 删除了我的 javascript 对象的一些数据
- ios - 如何在swift3 iOS中将文本写入保存在服务器上的文件
- solr - 如何让 SolrCloud 使用 HTTPS 创建集合?
- v8 - 在 linux 平台上编译 V8 失败
- python - __init__() 接受 1 个位置参数,但在一个非常简单的表单函数上给出了 2 个错误
- excel - 如何从 Excel 数据填充用户表单中的组合框下拉列表?
- file - .nii 扩展名的文件有分隔符吗?
- mysql - 此查询也显示昨天和今天的数据,但我只想要今天的数据