PolygonCollider2Dはデフォルトで過剰に頂点数が多く設定されるのでPolygonCollider2Dを持ったオブジェクトを複数出すと処理がかなり重くなります。
そこで、頂点数を削減して処理を軽くする方法を2つ紹介します。
↑頂点数が多すぎて凄いことになってますね、これでは当然処理が重くなります
Use Delaunay Mesh機能を使う
まずはPolygon Collider2Dに標準で搭載されている機能を使って頂点削減を行なってみます。
インスペクターのPolygon Collider2DにUse Delaunay Meshというチェックボックスがあるのでこれをチェックします。
すると、こんなに頂点数が多かったColliderが…
頂点数が削減され、スッキリしました!
しかし、これでも頂点数が多く、ゲームの処理は重いままでした…泣
シンプルな形状の画像であればこれだけでも処理が軽くなるかもしれません。
私が用意した画像の場合はそうではなかったのでこの機能に加えて、「PolygonColliderSimplification」を導入してさらに頂点削減を行いました。
PolygonColliderSimplificationを用いる
こちらの「Polygon Collider Simplification」を用いてPolygonCollider2Dの頂点数をいい感じに削減して処理を軽くしてもらいます。
Assetsフォルダをクリック
Collider2D Optimizationをクリック
この中からPolygonColliderOptimization.csとShapeOptimizationHelper.csをダウンロードします
ファイルをクリックし、ダウンロードのマークをクリックすることでファイルをダウンロードできます
ダウンロードしたcsファイルをすべてAssetsフォルダ内の任意の場所に移動させます。
PolygonCollider2DがついているオブジェクトにPolygonColliderOptimization.csをアタッチします。
Add Component→2D Collider Optimization→PolygonColliderOptimizationでアタッチできます。
⬇️Use Delaunay Meshの適用のみのBefore状態です。
ここからさらに頂点が削減されます。
PolygonColliderOptimization.csをアタッチできたら、パラメータの値を調整します。
Toleanceの値を大きくするほど頂点数が少なくなります。
大体0.01~0.05くらいで調整してみると良さそうです。
これで頂点数がさらに減りました!
無駄な部分がなくなってスッキリしましたね!
これを該当する全てのオブジェクトに適用できたら実行して動作を確認してみましょう!
これで全く重くならずにサクサクヌルヌル動きました!
まだ処理が重たい場合はパラメータの値をさらに大きくして調整してみてください。