Skip to content

Instantly share code, notes, and snippets.

@lycoris102
Last active July 20, 2019 06:43
Show Gist options
  • Save lycoris102/f63409f198193908c7f5c6267a0c7a1b to your computer and use it in GitHub Desktop.
Save lycoris102/f63409f198193908c7f5c6267a0c7a1b to your computer and use it in GitHub Desktop.
using Cinemachine;
using UnityEngine;
[RequireComponent(typeof(Collider2D))]
public class SwitchVirtualCameraArea : MonoBehaviour
{
[SerializeField] private CinemachineVirtualCamera targetVirtualCamera = default;
private CinemachineVirtualCamera TargetVirtualCamera => targetVirtualCamera;
private CinemachineBrain cinemachineBrain;
private const int EnableVirtualCameraPriority = int.MaxValue;
private void Start()
{
this.cinemachineBrain = Camera.main.GetComponent<CinemachineBrain>();
this.GetComponent<Collider2D>().isTrigger = true;
}
private void OnTriggerEnter2D(Collider2D collider)
{
if (!collider.CompareTag("Player"))
{
return;
}
this.DisableCurrentVirtualCamera();
this.EnableTargetVirtualCamera();
}
private void DisableCurrentVirtualCamera()
{
var current = this.cinemachineBrain.ActiveVirtualCamera as CinemachineVirtualCamera;
current.Priority = 0;
}
private void EnableTargetVirtualCamera()
{
this.TargetVirtualCamera.enabled = true;
this.TargetVirtualCamera.Priority = EnableVirtualCameraPriority;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment