見出し画像

FPSゲーム制作キャラクターコントロールだけで衝突判定をする時

お久しぶりです。かてこです。久々にFPSゲーム制作をしています!今回は、ワープ機能を作ろうとしていて、プレイヤーがワープポイント1というタグがついたオブジェクトに触れたら、ワープポイント2にワープするという機能を作ろうと思ったのですが、プレイヤーにはコライダーがなく、キャラクターコントローラーしかついていない場合は、OnControllerColliderHitというメソッドが必要だという事がわかりました。

参考コード

 //WarpPoint1というタグがついたオブジェクトに触れたら処理開始
    private void OnControllerColliderHit(ControllerColliderHit hit)
    {
        // hit.colliderを使う。
     //WarpPoint1というタグがついたオブジェクトに触れたら
        if (hit.collider.CompareTag("WarpPoint1"))
        {
            Debug.Log("ワープポイント1に触った");
        }
    }

このように書くと、プレイヤーがキャラクターコントローラーのコンポーネントしかついていない場合でも、タグがついたオブジェクトを判定できます。
しかし、判定したいオブジェクトのコライダーがトリガーの場合は判定できない。さらに、キャラクターコントローラーだけで、トリガーのコライダーを判定するメソッドなどは調べてもないみたいだ…。今回は別に大丈夫だったが、他のゲームなどだと何かしらのめんどくさいことが起きるかもしれないが、とりあえず今日のメモはこれぐらいとします!

この記事が参加している募集

仕事について話そう

この記事が気に入ったらサポートをしてみませんか?