【Unity】ダメージ判定を実装する方法

前回までの記事で敵が追いかけてくるところまでを実装しました。

今回はプレイヤーが敵を攻撃して倒せるようにしてみました。

上の動画の通り、パンチが的にヒットするとパーティカル・エフェクトが発生してます。

実装するポイントとしては以下の通り。

  • 攻撃判定コライダとエフェクトを作成
  • 攻撃用アニメーションを作成

空のオブジェクトAttackHitDetectorを作ってコライダやリジッドボディを設定しました。

ボックスコライダは、デフォルトでオフにしておいて、攻撃アニメーションの途中でオン、オフします。

リジッドボディは、衝突判定の際に、片方にリジッドボティが必要とのことでセットしています。

攻撃がヒットした時に、パーティクルを再生するようにしています。

パーティクル自体は空のオブジェクトAttackHitDetectorの子オブジェクトにしています。

アタッチしているスクリプトのOnHitAttackは以下の通り。

引数のcolliderは、攻撃がヒットした相手のコライダです。

コライダから相手のステータスを取り出して、ダメージを与えるようにしています。

アニメーションについては、以下の通り。

Attackへの遷移条件は、Attackという名のパラメータを設定して、マウス左クリックされた時にスクリプトで遷移させます。

パンチのアニメーションに合わせて、攻撃判定コライダをオン、オフするには、以下のようにAnimation画面でセットします。

以上です。