如何计算平面poligon网格的UV

时间:2016-12-28 12:57:59

标签: unity3d unity5 mesh uv-mapping

我的游戏会产生一个平坦的表面(建筑物的地板)。它是一个平坦的poligon网格,如图所示:

enter image description here

poligon是程序生成的,每次都会不同。

我需要映射UV坐标,以便正确显示标准方形纹理,例如砖块制成的地板。

为每个顶点确定正确的UV坐标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

如果形状不规则,您可能需要粘贴"横跨网格的纹理(想象一下,在网格上粘贴一个矩形贴纸,并切掉那些落在网格形状之外的贴纸)。

对于这种类型的映射,您可能希望使用Mesh.bounds,它会在本地坐标中为您提供bounding box的{​​{1}},这是您要去的区域"粘贴"你的纹理结束。

mesh

获取网格的顶点:

Mesh mesh = GetComponent<MeshFilter>();
Bounds bounds = mesh.bounds;

现在进行映射:

Vector3[] vertices = mesh.vertices;