(Unity)2台のバーチャルカメラを切り替える

(前提知識)

  • バーチャルカメラが複数ある場合、それらの優先度は「Priorityの大きさ」で決まる。
  • 今回の初期値は「TPS 10」 > 「FPS 1」なのでTPSが優先


(方針)

  • FPSのPriorityをスクリプトで変更することで、2台のバーチャルカメラを切り替える。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// (追加)ポイント
using Cinemachine;

public class CMController : MonoBehaviour
{
    public GameObject CMFPS;
    public GameObject FPSAim;
    private bool fpsMode = false;

    private void Start()
    {
        FPSAim.SetActive(false);
    }

    void Update()
    {
        if(Input.GetKeyDown(KeyCode.C) && !fpsMode)
        {
            CMFPS.GetComponent<CinemachineVirtualCamera>().Priority = 100;
            fpsMode = true;
            FPSAim.SetActive(true);
        }
        else if(Input.GetKeyDown(KeyCode.C) && fpsMode)
        {
            CMFPS.GetComponent<CinemachineVirtualCamera>().Priority = 1;
            fpsMode = false;
            FPSAim.SetActive(false);
        }
    }
}