Unity C#でCinemachineカメラを使ったBOX Collider内でのカメラ切り替え方法

C言語関連

UnityのCinemachineカメラを使って、特定の範囲(BOX Collider内)に侵入したときにカメラを切り替える方法について解説します。Cinemachineは、Unityのカメラ操作を簡単にするツールで、ゲーム開発の中で非常に便利です。この記事では、簡単なステップでカメラの切り替えを実現する方法をご紹介します。

Cinemachineのセットアップ

まずはCinemachineをプロジェクトにインポートします。UnityのPackage ManagerからCinemachineを検索してインポートしましょう。その後、シーンにCinemachine Virtual Cameraを配置します。これで、Cinemachineカメラが使用できるようになります。

BOX Colliderの設定

次に、カメラを切り替えたい範囲を示すために、シーン内にBOX Colliderを追加します。ColliderのTriggerプロパティをオンにして、他のオブジェクトがこの範囲に侵入したときにイベントを発生させます。Colliderは3Dまたは2Dで使用できます。

C#スクリプトでカメラ切り替え

以下のようなC#スクリプトを作成して、BOX Collider内に入った時にカメラを切り替えることができます。スクリプトは、Collider内に入ったオブジェクトを検出し、Cinemachine Virtual Cameraを切り替えます。

using UnityEngine; using Cinemachine; public class CameraSwitcher : MonoBehaviour { public CinemachineVirtualCamera cameraA; public CinemachineVirtualCamera cameraB; private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) { cameraA.Priority = 0; cameraB.Priority = 10; } } private void OnTriggerExit(Collider other) { if (other.CompareTag("Player")) { cameraA.Priority = 10; cameraB.Priority = 0; } } }

このスクリプトでは、Collider内に「Player」タグが付いたオブジェクトが入ると、カメラAの優先度が0に、カメラBの優先度が10に設定され、カメラが切り替わります。

カメラの切り替えの応用

さらに、カメラの位置やアングルを変更したい場合は、Cinemachineのパラメータを動的に変更できます。例えば、カメラのFollowターゲットやLook Atターゲットを変更することも可能です。これを応用すれば、よりリアルなカメラワークを実現できます。

まとめ

この方法を使えば、UnityのCinemachineカメラを利用して、簡単にCollider内でカメラを切り替えることができます。Colliderのトリガーイベントを使用することで、リアルタイムでシーンに変化を加えることができます。さらに、カメラの動きや追従対象を変更することで、よりダイナミックなカメラ演出が可能です。

コメント

タイトルとURLをコピーしました