はこねのはこ

はこねさんの備忘録

キャラクターコントローラーがコライダーに衝突した際の関数

はじめに

ControllerColliderを使用していて、他のColliderと衝突した際に何かしたい場合、 実現方法を毎度毎度調べ直しているのでいい加減メモして定着させます。

使い方

OnControllerColliderHit関数を使用します。

だいたいこんな感じで衝突した際にタグをみて判定するようにしています。

   void OnControllerColliderHit(ControllerColliderHit hit){
        Debug.Log("hit.gameObject.tag: "+hit.gameObject.tag);
        switch(hit.gameObject.tag){
            case "Obstacle":               
                //hoge
                break;
            case "enemy":
                //piyo
                break;
            default:
                //do nothing
                break;
        }
    }

スニペット

楽したいので作成しておきます。

   "Caracter Controller Collider + Switch": {
        "prefix": "characollider",
        "body": [
            "void OnControllerColliderHit(ControllerColliderHit hit){",
            "\tswitch(hit.gameObject.tag){",
            "\t\tcase $1:",
            "\t\t\t$2",
            "\t\t\tbreak;",
            "\t\tdefault:",
            "\t\t\tbreak;",
            "\t}",
            "}"
        ],
        "description": "OnControllerColliderHit + switch"
    }

公式リファレンス

docs.unity3d.com