You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.5 KiB
58 lines
1.5 KiB
using Cinemachine;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using UnityEngine;
|
|
|
|
public class CameraManager : MonoBehaviour
|
|
{
|
|
public static CameraManager instance { get; private set; }
|
|
|
|
public CinemachineVirtualCamera[] m_VCamList;
|
|
|
|
private CinemachineVirtualCamera m_ActiveCamera;
|
|
|
|
public CinemachineBrain m_CMBrain;
|
|
|
|
private void Awake()
|
|
{
|
|
if (instance != null && instance != this)
|
|
{
|
|
Destroy(this);
|
|
}
|
|
else
|
|
{
|
|
instance = this;
|
|
}
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
// Get all virtual camera objects in Unity
|
|
CompleteVCList();
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
SetCullingMask();
|
|
}
|
|
|
|
private void CompleteVCList() => m_VCamList = FindObjectsByType<CinemachineVirtualCamera>(FindObjectsSortMode.None);
|
|
|
|
private void SetCullingMask()
|
|
{
|
|
CinemachineVirtualCamera cam = (CinemachineVirtualCamera) m_CMBrain.ActiveVirtualCamera;
|
|
GameObject obj = cam.gameObject;
|
|
string tag = obj.tag;
|
|
Camera mainCamera = m_CMBrain.OutputCamera;
|
|
|
|
if (tag.Contains("surviellance"))
|
|
{
|
|
mainCamera.cullingMask = LayerMask.GetMask("Default", "TransparentFX", "Ignore Raycast", "Water", "UI", "Rig");
|
|
}
|
|
else
|
|
{
|
|
mainCamera.cullingMask = LayerMask.GetMask("Default", "TransparentFX", "Ignore Raycast", "Water", "UI", "Rig");
|
|
}
|
|
}
|
|
}
|
|
|