我的游戏会产生一个平坦的表面(建筑物的地板)。它是一个平坦的poligon网格,如图所示:
poligon是程序生成的,每次都会不同。
我需要映射UV坐标,以便正确显示标准方形纹理,例如砖块制成的地板。
为每个顶点确定正确的UV坐标的最佳方法是什么?
答案 0 :(得分:1)
如果形状不规则,您可能需要粘贴"横跨网格的纹理(想象一下,在网格上粘贴一个矩形贴纸,并切掉那些落在网格形状之外的贴纸)。
对于这种类型的映射,您可能希望使用Mesh.bounds
,它会在本地坐标中为您提供bounding box
的{{1}},这是您要去的区域"粘贴"你的纹理结束。
mesh
获取网格的顶点:
Mesh mesh = GetComponent<MeshFilter>();
Bounds bounds = mesh.bounds;
现在进行映射:
Vector3[] vertices = mesh.vertices;