From 5e23e96af5eaec4dbee5564cbd07b185bc23cd93 Mon Sep 17 00:00:00 2001 From: NTG Date: Tue, 19 Aug 2025 18:24:46 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B9=B4=EB=A9=94=EB=9D=BC=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=20=EB=B0=A9=EC=8B=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_Scripts/CameraSystem/CameraGameObject.cs | 11 +++++++++++ .../_Scripts/CameraSystem/CameraManager.cs | 19 +++---------------- .../Player/RestaurantPlayerCharacter.cs | 16 +++++++--------- 3 files changed, 21 insertions(+), 25 deletions(-) diff --git a/Assets/_DDD/_Scripts/CameraSystem/CameraGameObject.cs b/Assets/_DDD/_Scripts/CameraSystem/CameraGameObject.cs index ebf16598c..948f89cc0 100644 --- a/Assets/_DDD/_Scripts/CameraSystem/CameraGameObject.cs +++ b/Assets/_DDD/_Scripts/CameraSystem/CameraGameObject.cs @@ -15,6 +15,17 @@ private void Awake() _cinemachineCamera = GetComponent(); } + 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; diff --git a/Assets/_DDD/_Scripts/CameraSystem/CameraManager.cs b/Assets/_DDD/_Scripts/CameraSystem/CameraManager.cs index 2dc72bc9d..4e0dfde75 100644 --- a/Assets/_DDD/_Scripts/CameraSystem/CameraManager.cs +++ b/Assets/_DDD/_Scripts/CameraSystem/CameraManager.cs @@ -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(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 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); } } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerCharacter.cs b/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerCharacter.cs index 0b44d6e17..ea20068fb 100644 --- a/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerCharacter.cs +++ b/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerCharacter.cs @@ -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); } } } \ No newline at end of file