actionScript書きの日記

アラフォーFlashデベロッパのブログ。actionscriptやobjective-cを経て、現在はUnity、Spine、AfterEffectsがメイン。

Unityで動的にMeshの頂点数を増やしたらメッシュが縮小されてしまった件

前提

UnityのScriptで動的にMeshを生成し、SetVerticesとSetTrianglesを使用して頂点数を変更する処理を作成した。試しに縦横500ずつ頂点を作成すると、Meshの大きさが突然小さくなるという現象が発生した。頂点数をある程度減らすと解決した。

 

対応

デフォルトでUnityのMeshの頂点数が65535となっているため、それを超えた頂点は描画されないようである。今回のケースだと500×500で250000個の頂点が発生するので、この上限に引っかかってしまっている。

そのため、以下の処理を入れて、Meshの上限数を増やして描画をしたら解決した。

Mesh mesh = new Mesh();
mesh.indexFormat = UnityEngine.Rendering.IndexFormat.UInt32;

 

以下の記事に助けていただいた。感謝申し上げる。

inoookov.hatenablog.com