39 lines
1.0 KiB
C#
39 lines
1.0 KiB
C#
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<ICinemachineCamera>(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);
|
|
}
|
|
}
|
|
}
|