using Cinemachine; using UnityEngine; namespace AibisDream.Framework { [RequireComponent(typeof(CinemachineVirtualCamera))] public class VirtualCamRegistry : MonoBehaviour { [SerializeField] private CameraEnum cameraType; private void Awake() { if (cameraType == CameraEnum.Default) { Debug.LogWarning($"[{nameof(VirtualCamRegistry)}] cameraType 不能为 Default,请在 Inspector 配置。", this); return; } if (!TryGetComponent(out var virtualCam)) { Debug.LogWarning($"[{nameof(VirtualCamRegistry)}] 未找到 ICinemachineCamera 组件。", this); return; } CameraKit.Instance.RegisterCamera(cameraType, virtualCam); } private void OnDestroy() { if (cameraType == CameraEnum.Default) { return; } CameraKit.Instance?.UnRegisterCamera(cameraType); } } }