2Dキャラクターの壁透過を防ぎながらX軸とY軸を移動させる方法


  1. 衝突検出の実装: キャラクターが壁に衝突しないようにするには、衝突検出を実装する必要があります。一般的な方法は、キャラクターの移動先に壁があるかどうかを確認することです。衝突検出にはいくつかの方法がありますが、以下に簡単な方法を示します。

    • キャラクターの座標と移動先の座標を比較し、壁の座標と重なる場合は移動を許可しないようにします。
    • もしくは、キャラクターの周囲に当たり判定用のコライダーを設定し、壁のコライダーと交差するかどうかをチェックします。
  2. X軸とY軸の移動制限: キャラクターをX軸とY軸で移動させるためには、移動ベクトルを計算し、そのベクトルの長さを制限する必要があります。具体的には、以下の手順に従います。

    • キャラクターの移動方向を表すベクトルを作成します。通常、ユーザー入力やプログラム内の変数に基づいて計算されます。
    • ベクトルの長さを計算し、必要ならば制限します。例えば、移動速度の最大値を設定することで、キャラクターの速度を制御できます。
    • 制限されたベクトルをキャラクターの座標に加えることで、キャラクターを移動させます。
  3. 壁透過を防ぐ方法: 以上の手順を組み合わせることで、キャラクターが壁を透過しないようにすることができます。キャラクターが壁に衝突した場合、移動を許可しないようにするか、キャラクターの移動ベクトルを調整することで、壁を回避します。

例えば、キャラクターが移動先に壁がある場合は、移動を許可せずにキャラクターの座標を変更しないようにします。または、壁の近くで移動速度を減速させることもできます。これにより、キャラクターが壁に近づくと自動的に停止する効果が得られます。