こんにちハサミギロチン
バルバトスMGを買ったので,ゴールデンウイークに組み立てるのが楽しみです.
今回はPolygon Collider 2Dから平面のMeshを作成した時の備忘録です.
Unity: Unity 2019.4.24f1
参考文献
今回は独自仕様なのでなし.
動機
スプライトの形に応じたMeshが使えたら便利かもっておもっただけ.
(本当は,2Dのコライダーを3Dゲームに使用する方法がわからなかっただけ)
Prefab
事前にSpriteとPolygon Collider 2Dを当てて,Polygon Collider 2DでSpriteの外枠をなぞったコライダーを生成する.
Prefab構成はこんな感じ.
生成アルゴリズム
1.Polygon Collider 2Dで作成したコライダー頂点を取得.
-> このとき,外枠をなぞるように並んでいることを前提.
2.取得した頂点の重心を計算.
3.頂点を順番になぞり,三角形を構成.
-> 隣り合う2点の頂点+重心で1つの面
スクリプト
多分スクリプトを見たほうが早い.
実行結果
単純な閉じた図形ならこんな感じでMeshを構成できる.
応用
コライダーをスプライトの形に近似して多角形コライダーを作成する.
まとめ
Polygon Collider 2Dが順番通りの座標配置で良かった~.
これがバラバラだと座標に順番を割り当てる必要があるので面倒.
複雑な構成の場合は,Convex Hullのアルゴリズムをさらう必要があるね.
参考
凸包アルゴリズム
https://www.jaist.ac.jp/~uehara/course/2014/i481f/pdf/ppt-3.pdf