카메라 관리 방식 변경 string -> enum
This commit is contained in:
parent
ada20f3f91
commit
6f7a5e131c
@ -6,7 +6,7 @@ namespace DDD
|
||||
public class CameraGameObject : MonoBehaviour
|
||||
{
|
||||
[field: SerializeField]
|
||||
public string Id { get; private set; }
|
||||
public CameraType CameraType { get; private set; }
|
||||
|
||||
private CinemachineCamera _cinemachineCamera;
|
||||
|
||||
|
@ -4,10 +4,16 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
public enum CameraType
|
||||
{
|
||||
None = 0,
|
||||
RestaurantBaseCamera = 1
|
||||
}
|
||||
|
||||
public class CameraManager : Singleton<CameraManager>, IManager
|
||||
{
|
||||
[ShowInInspector, ReadOnly]
|
||||
private Dictionary<string, CameraGameObject> _cameraGameObjects = new();
|
||||
private Dictionary<CameraType, CameraGameObject> _cameraGameObjects = new();
|
||||
|
||||
private CinemachineBrain _cinemachineBrain;
|
||||
|
||||
@ -23,24 +29,24 @@ public void PostInit()
|
||||
|
||||
public void RegisterCamera(CameraGameObject cameraGameObject)
|
||||
{
|
||||
_cameraGameObjects.TryAdd(cameraGameObject.Id, cameraGameObject);
|
||||
_cameraGameObjects.TryAdd(cameraGameObject.CameraType, cameraGameObject);
|
||||
}
|
||||
|
||||
public void UnRegisterCamera(CameraGameObject cameraGameObject)
|
||||
{
|
||||
_cameraGameObjects.Remove(cameraGameObject.Id);
|
||||
_cameraGameObjects.Remove(cameraGameObject.CameraType);
|
||||
}
|
||||
|
||||
public void SwitchCamera(string id, CinemachineBlendDefinition.Styles blendStyle = CinemachineBlendDefinition.Styles.Cut, float blendDuration = 1f)
|
||||
public void SwitchCamera(CameraType cameraType, CinemachineBlendDefinition.Styles blendStyle = CinemachineBlendDefinition.Styles.Cut, float blendDuration = 1f)
|
||||
{
|
||||
_cinemachineBrain.DefaultBlend = new CinemachineBlendDefinition(blendStyle, blendDuration);
|
||||
foreach (var item in _cameraGameObjects)
|
||||
{
|
||||
int newPriority = item.Value.Id == id ? 10 : 0;
|
||||
int newPriority = item.Value.CameraType == cameraType ? 10 : 0;
|
||||
item.Value.SetPriority(newPriority);
|
||||
}
|
||||
}
|
||||
|
||||
public CameraGameObject GetCameraGameObject(string id) => _cameraGameObjects[id];
|
||||
public CameraGameObject GetCameraGameObject(CameraType cameraType) => _cameraGameObjects[cameraType];
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user