3Dゲーム開発環境であるUnityで2Dスプライトゲームを作っています。オブジェクトのすべての移動を XY 平面に、回転を Z 軸に制限しました。
私の問題は、オブジェクト間の衝突を検出するために使用されるメッシュがまだ 3D でなければならないことです。プレイヤー オブジェクト (カプセル コライダー) とスプライト (ポリゴン プリズムによって定義された衝突ボリュームを持つ) の間の衝突を検出する必要があります。
私は現在、レベル エディターを書いています。特定のタイルの衝突領域をユーザーが定義できるようにする必要があります。下の画像では、ユーザーはポイント P1、P2、P3、P4 をこの順序でクリックします。
当然、点が集まって四角形を形成します。これが必要なコリジョン エリアですが、それを 3D メッシュに変換する必要があります。基本的には、ポリゴンの押し出しを生成してから、頂点の曲がりくねった三角形などを割り当てる必要があります。頂点の位置は、単にポリゴンを z 軸に沿って移動させるだけなので、把握するのに問題はありません。
特にメッシュは三角形のみで構成されている必要があるため、頂点のワインディング順序を割り当てるアルゴリズムの作成に問題があります。
明らかに、私が示した構造は重要ではありません。ポリゴンは任意の 2D 形状であり、常にプリズムを形成する必要があります。誰かがこれのための方法を知っていますか?
皆様、お忙しい中ありがとうございました。