以下のように、カーブに基づいて手続き型メッシュを作成しています。メッシュ全体のサイズがカーブ全体で小さくなっています。
そして問題は、サイズが変わるとUVがジグザグになることです(カーブ全体でメッシュのサイズが同じである場合、UVは完全に機能します)。
Vertices.Add(R);
Vertices.Add(L);
UVs.Add(new Vector2(0f, (float)id / count));
UVs.Add(new Vector2(1f, (float)id / count));
start = Vertices.Count - 4;
Triangles.Add(start + 0);
Triangles.Add(start + 2);
Triangles.Add(start + 1);
Triangles.Add(start + 1);
Triangles.Add(start + 2);
Triangles.Add(start + 3);
mesh.vertices = Vertices.ToArray();
//mesh.normals = normales;
mesh.uv = UVs.ToArray();
mesh.triangles = Triangles.ToArray();
どうすれば修正できますか?
id
は、ストリップに沿ったすべてのクロスバーからの現在のセグメントのインデックスですcount
。List<T>.ToArray()
リスト内のすべてのエントリの型付き配列を返します(つまり、ここではa Vector2[]
)。これらのデータバッファーは、最後の数行でMesh
インスタンスmesh
に割り当てることにより、レンダリングシステムで使用できるようになります。ただし、これはコードの特に興味深い部分ではありません。頂点ポイントの選択方法です。これらの詳細は、見るとさらに便利です。;)
count
実際にはポリゴンではなく頂点を意味していること、またはその逆を理解しているだけです。私たちが行っていると思うすべてが本当に起こっていることを確認するだけです。
id
とcount
?何をしUVs.ToArray()
ますか?頂点とテクスチャ座標をカードにどのようにアップロードしますか?