카메라 등록 방식 변경

This commit is contained in:
NTG 2025-08-19 18:24:46 +09:00
parent ac3f1a4b9b
commit 5e23e96af5
3 changed files with 21 additions and 25 deletions

View File

@ -15,6 +15,17 @@ private void Awake()
_cinemachineCamera = GetComponent<CinemachineCamera>();
}
private void OnEnable()
{
CameraManager.Instance.RegisterCamera(this);
}
private void OnDisable()
{
var cameraManager = CameraManager.Instance;
cameraManager?.UnRegisterCamera(this);
}
public int GetPriority() => _cinemachineCamera.Priority;
public void SetPriority(int newPriority) => _cinemachineCamera.Priority = newPriority;
public void SetFollowTarget(Transform target) => _cinemachineCamera.Follow = target;

View File

@ -2,7 +2,6 @@
using System.Threading.Tasks;
using Sirenix.OdinInspector;
using Unity.Cinemachine;
using UnityEngine;
namespace DDD
{
@ -44,12 +43,7 @@ public Task Init()
public void PostInit()
{
var cameraGameObjects = FindObjectsByType<CameraGameObject>(FindObjectsInactive.Include, FindObjectsSortMode.None);
foreach (var cameraGameObject in cameraGameObjects)
{
RegisterCamera(cameraGameObject);
}
_initializationTask.SetResult(true);
}
public void RegisterCamera(CameraGameObject cameraGameObject)
@ -72,16 +66,9 @@ public void SwitchCamera(CameraType cameraType, CinemachineBlendDefinition.Style
}
}
public async Task<CameraGameObject> GetCameraGameObject(CameraType cameraType)
public CameraGameObject GetCameraGameObject(CameraType cameraType)
{
await _initializationTask.Task;
if (_cameraGameObjects.TryGetValue(cameraType, out var cameraGameObject))
{
return cameraGameObject;
}
return null;
return _cameraGameObjects.GetValueOrDefault(cameraType);
}
}
}

View File

@ -1,22 +1,20 @@
using System.Threading.Tasks;
using UnityEngine;
namespace DDD
{
public class RestaurantPlayerCharacter : RestaurantCharacter
{
protected override void Awake()
protected override async void Awake()
{
base.Awake();
_ = Initialize();
PlayerManager.Instance.RegisterPlayer(gameObject);
}
private async Task Initialize()
protected override void Start()
{
PlayerManager.Instance.RegisterPlayer(gameObject);
var cameraObject = await CameraManager.Instance.GetCameraGameObject(CameraType.RestaurantBaseCamera);
cameraObject?.SetFollowAndLookAtTarget(transform);
base.Start();
var cameraObject = CameraManager.Instance.GetCameraGameObject(CameraType.RestaurantBaseCamera);
cameraObject.SetFollowAndLookAtTarget(transform);
}
}
}