i-school - 攻撃判定の実装例
 攻撃判定の実装例です。
アクションゲーム(格闘ゲーム)などに利用できます。

 見えないコライダーを持つゲームオブジェクトを生成して、攻撃判定に利用する手法です。
例えばパンチやキックに合わせて攻撃判定として使います。
また、この判定を持つオブジェクトを発射すれば弾(波動拳など)としても応用できます。



攻撃用の見えないコライダーのゲームオブジェクトを作成してプレハブにする


 ヒエラルキーにて 3D → Sphere などでコライダー付きのゲームオブジェクトを作成します。
当たり判定を発生させるため、Rigidbody コンポーネントを追加し、Use Gravity のチェックを外して重力計算を行わないようにします。
このコンポーネントを利用すれば物理演算による発射処理にも応用可能です。

 作成後は MeshRenderer のチェックを外して見えないゲームオブジェクトとしてからプレハブにします。


インスペクター画像



攻撃判定側


 先ほど作成した見えない当たり判定用のプレハブにアタッチして利用します。

 機能としては

・「対象を進行方向と反対側にノックバックさせる」
・「対象の所有物(アイテム)を落とす(上空に打ち上げる)」

 の2つの処理を実装しています。

 対象には Enemy クラス、プレイヤーには PlayerController クラス、アイテムには ItemBase クラスがアタッチされている前提です。


HitController.cs

 <= クリックすると開きます




生成側


 攻撃処理をつくりたいクラス内に下記の変数とメソッドを追加し、AnimationEvent から実行するようにします。

 専用のクラスを作成しても構いません。

 <= クリックすると開きます