【Unity】ゴール判定する
machokoさんが運んだアイテムは、ゴール内の床に接地することでカウントされます。今回はこれについて、ご紹介します。
ゴール床にコライダを追加する
今回はゴール床はPlaneオブジェクトを使っているので、あらかじめコライダがついています。もしついていないオブジェクトを使っている場合のみ、追加してください。
アイテムにコライダを追加する
Cube、Sphere、Cylinder、Coneオブジェクトにもあらかじめコライダがついています。こちらもゴール床と同様、コライダがない場合のみ追加してください。なお、ConeはProBuilderで作成しました。
スクリプトで衝突判定を検知する
コライダで衝突を検知すると、衝突イベントが発生します。イベントを受け取るには、以下のメソッドを必要に応じてオーバーライドします。
- OnCollisionEnter・・・衝突したときに呼ばれる
- OnCollisionExit・・・衝突が終了したときに呼ばれる
なお、コライダのIsTriggerをtrueにしている場合は、OnTriggerEnter/OnTriggerExitを使用します。IsTriggerは衝突を検知するのみで、衝突した結果の物理動作を行わない場合にtrueにします(ぶつかっても跳ね返らないようにしたい場合など)。
衝突した相手の情報を取得し、ゴール床であればゴール判定とするスクリプトをアイテムにアタッチします。
結論
- ゴール判定は衝突判定を使う
- 衝突判定には、コライダを使用する
- ConeオブジェクトはProBuilderで作成できる
- コライダのIsTriggerは、衝突した結果の物理動作を行いたくない場合にtrueにする