2016-12-28 3 views
1

私のゲームでは、平面(建物の床)が生成されます。フラットポリゴンメッシュのUVを計算する方法

enter image description here

poligonが手続き生成され、その都度異なるであろう。それは、写真のように平坦poligonメッシュです。

レンガでできた床などの標準的な正方形のテクスチャが適切に表示されるように、UV座標をマップする必要があります。

各頂点に正しいUV座標を当てはめる最良の方法は何ですか?

答えて

1

不規則な形状の場合は、メッシュ全体にテクスチャを貼り付けることができます(メッシュに長方形のステッカーを貼り付け、メッシュ外にあるものを切り取った場合)。マッピングのそのタイプの

、あなたはあなたがあなたのテクスチャの上に「ペースト」しようとしている地域であるあなたのmeshにおけるローカル座標bounding boxを与える、Mesh.boundsを使用する場合があります。

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

あなたのメッシュの頂点を取得します。

Vector3[] vertices = mesh.vertices; 

今すぐマッピングを実行します。

Vector2[] uvs = new Vector2[vertices.Length]; 
for(int i = 0; i < vertices.Length; i++) 
{ 
    uvs[i] = new Vector2(vertices[i].x/bounds.size.x, vertices[i].z/bounds.size.z); 
} 
mesh.uv = uvs; 
素晴らしい作品
+0

を、ありがとう!私は、メッシュの周りに境界のある四角形を見つけようとしていましたが、頂点の座標を四角形にマッピングしようとしていましたが、私はどこかでうんざりしました。指定された範囲を使用する方がはるかに簡単です:) – kace91

関連する問題