(前提知識)
- バーチャルカメラが複数ある場合、それらの優先度は「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);
}
}
}