camera_system #5

Merged
Jeonghyeon merged 18 commits from camera_system into develop 2025-07-14 07:10:06 +00:00
2 changed files with 13 additions and 7 deletions
Showing only changes of commit 6f7a5e131c - Show all commits

View File

@ -6,7 +6,7 @@ namespace DDD
public class CameraGameObject : MonoBehaviour public class CameraGameObject : MonoBehaviour
{ {
[field: SerializeField] [field: SerializeField]
public string Id { get; private set; } public CameraType CameraType { get; private set; }
private CinemachineCamera _cinemachineCamera; private CinemachineCamera _cinemachineCamera;

View File

@ -4,10 +4,16 @@
namespace DDD namespace DDD
{ {
public enum CameraType
{
None = 0,
RestaurantBaseCamera = 1
}
public class CameraManager : Singleton<CameraManager>, IManager public class CameraManager : Singleton<CameraManager>, IManager
{ {
[ShowInInspector, ReadOnly] [ShowInInspector, ReadOnly]
private Dictionary<string, CameraGameObject> _cameraGameObjects = new(); private Dictionary<CameraType, CameraGameObject> _cameraGameObjects = new();
private CinemachineBrain _cinemachineBrain; private CinemachineBrain _cinemachineBrain;
@ -23,24 +29,24 @@ public void PostInit()
public void RegisterCamera(CameraGameObject cameraGameObject) public void RegisterCamera(CameraGameObject cameraGameObject)
{ {
_cameraGameObjects.TryAdd(cameraGameObject.Id, cameraGameObject); _cameraGameObjects.TryAdd(cameraGameObject.CameraType, cameraGameObject);
} }
public void UnRegisterCamera(CameraGameObject 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); _cinemachineBrain.DefaultBlend = new CinemachineBlendDefinition(blendStyle, blendDuration);
foreach (var item in _cameraGameObjects) 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); item.Value.SetPriority(newPriority);
} }
} }
public CameraGameObject GetCameraGameObject(string id) => _cameraGameObjects[id]; public CameraGameObject GetCameraGameObject(CameraType cameraType) => _cameraGameObjects[cameraType];
} }
} }