Unity事例ノート

UNITY

CharacterControllerの衝突判定

衝突判定にはOnTriggerEnterやOnCollisionEnterなどがありますが、キャラクターコントローラーを用いて動かす場合は、OnControllerColliderHitを使います。

前回の続きで、ボールにぶつかるとパーティクルが発生するようにしましょう。

今回の制作は、【Unity C#】CharacterController.Moveによるジャンプ移動 を完成させてから進めてください。

前回記事:【Unity C#】CharacterController.Moveによるジャンプ移動

ボールとパーティクルの準備

Sphereオブジェクトを作成し、グリーンに着色。

プレーヤーから少し離れたところに配置しました。

パーティクルシステムを新規作成します。

ヒエラルキー > エフェクト > パーティクルシステム

移動ツールを使い、ParticleSystemを、Sphereと同じ位置に動かします。

ParticleSystemのインスペクターから、パーティクルの色を変更しましょう。

ParticleSystemを、Sphereにドラッグ&ドロップし、親子関係を取るようにします。

OnControllerColliderHitを使ったスクリプト

続いて、キャラクターコントローラーで動かしているオブジェクトの衝突判定をつくります。

CapsuleMove.csを開いて、コード編集しましょう。

今回、新しく追加したコードには、コメント(//)を入れています。

ゲームプレイして、表示を見てみましょう。

Sphereにぶつかって、パーティクルが発生すればOKです。

このように、キャラクターコントローラー(CharacterController)では、コライダーによる衝突判定は使えないため、OnControllerColliderHitを使って制御します。

関連記事:
【Unity C#】CharacterControllerに発射機能をつける