camera_system #5
@ -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;
|
||||||
|
|
||||||
|
@ -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];
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user