前提・実現したいこと
Unityで2Dのボリュームライトのようなものを自作してみようと思い、周囲のColliderの頂点からライトで照らされた範囲のメッシュを作成する方法を考えてみました。
その中で次の2つのことでつまずいています。
1.UnityのPhysics2D.OverlapCircleAllで取得したCollider2Dの種類の判別(Box,Circle,Polygon,tilemapなど)
2.CompositeCollider2Dの頂点の取得(PolygonCollider2Dのpointsにあたるもの)
どちらもスクリプトリファレンスを見ても関係のありそうな変数や関数が見つけられなかったので、何か方法があれば教えていただけると嬉しいです。
それかそもそものボリュームライトの考え方でもっといい方法があれば教えてください。よろしくお願いします。
試したこと
2に関してはGetPathを使って
for(int i = 0;i < composite.pathCount;++i)
{
Vector2[] points = new Vector2[2];
col.GetPath(i,points);
}
でpointsに頂点が入っていることを期待しましたがうまくいかず、そもそもpathCountがUnityのシーンウィンドウで確認できる緑のGizmoの多角形を構成している辺の数より明らかに少なかったです。
ちなみに関係あるかわかりませんが、そのCompositeCollider2DはTilemapCollider2Dによるものでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/30 11:00