Cinemachineを使ってカメラの切り替えをする【Unity,Cinemachine】

本来やりたかったこととは違うのですが...副産物としてメモしておきます (あとからいい感じにしたものを再度編集しなおす可能性があります :キャラアニメション・カメラの角度等)

Demo

youtu.be

cameraの設置

下の画像で3つのカメラを設定しています.

カメラは Priority の高いものから移されます. 初めに移すものを高く設定します.

f:id:ayousanz:20201206151140p:plain

cameraの切り替えを特定の場所で切り替える.

以下の赤丸で囲ってるところにColliderを置いて,Triggerで切り替えるようにします. f:id:ayousanz:20201206150909p:plain

移動しているキャラクターに以下のスクリプトをアタッチして,Colliderにあったときに現在のカメラをOffにします.

using System.Collections.Generic;
using Cinemachine;
using UnityEngine;

public class CameraController : MonoBehaviour
{
    [SerializeField] private List<CinemachineVirtualCamera> vCameras;

    private int _currentCameraNumber = 0;
    // Start is called before the first frame update

    private void OnTriggerEnter(Collider other)
    {
        if (!other.gameObject.CompareTag("CameraSwitch/To2Camera") &&
            !other.gameObject.CompareTag("CameraSwitch/To3Camera")) return;
        vCameras[_currentCameraNumber].gameObject.SetActive(false);
        _currentCameraNumber++;
        other.gameObject.SetActive(false);
    }
}

参考サイト

light11.hatenadiary.com

tsubakit1.hateblo.jp

light11.hatenadiary.com