Files
Ultimate-Fishing-Simulator-…/Assets/Scripts/Assembly-CSharp/CinemachineCullingMaskSwitcher.cs
2026-03-04 09:37:33 +08:00

48 lines
1.1 KiB
C#

using System;
using Cinemachine;
using UnityEngine;
[RequireComponent(typeof(CinemachineBrain))]
public class CinemachineCullingMaskSwitcher : MonoBehaviour
{
[Serializable]
public class VCamCullingMask
{
public CinemachineVirtualCameraBase virtualCamera;
public LayerMask cullingMask;
}
[Tooltip("Lista wirtualnych kamer i odpowiadających im culling mask")]
public VCamCullingMask[] vcamMasks;
private Camera mainCamera;
private CinemachineBrain brain;
private void Awake()
{
mainCamera = Camera.main;
brain = GetComponent<CinemachineBrain>();
brain.m_CameraActivatedEvent.AddListener(OnCameraActivated);
}
private void OnDestroy()
{
brain.m_CameraActivatedEvent.RemoveListener(OnCameraActivated);
}
private void OnCameraActivated(ICinemachineCamera activatedCam, ICinemachineCamera vcam)
{
VCamCullingMask[] array = vcamMasks;
foreach (VCamCullingMask vCamCullingMask in array)
{
if (vCamCullingMask.virtualCamera != null && vCamCullingMask.virtualCamera.VirtualCameraGameObject == activatedCam.VirtualCameraGameObject)
{
mainCamera.cullingMask = vCamCullingMask.cullingMask;
break;
}
}
}
}