diff --git a/Assets/_DDD/_Addressables/So/CreateRestaurantPlayerSo.asset b/Assets/_DDD/_Addressables/So/CreateRestaurantPlayerSo.asset deleted file mode 100644 index b3476a9cc..000000000 --- a/Assets/_DDD/_Addressables/So/CreateRestaurantPlayerSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:69b1b6785e41af191db675f88d2bd8425c39c43154c84a14fe39f47109fb2971 -size 451 diff --git a/Assets/_DDD/_Addressables/So/CreateRestaurantPlayerSo.asset.meta b/Assets/_DDD/_Addressables/So/CreateRestaurantPlayerSo.asset.meta deleted file mode 100644 index abd9dd5aa..000000000 --- a/Assets/_DDD/_Addressables/So/CreateRestaurantPlayerSo.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 47e757b9a170ab649af14c4d7b80ac41 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_DDD/_Addressables/So/RestaurantDataSo.asset b/Assets/_DDD/_Addressables/So/RestaurantDataSo.asset index 39c210c48..86c404522 100644 --- a/Assets/_DDD/_Addressables/So/RestaurantDataSo.asset +++ b/Assets/_DDD/_Addressables/So/RestaurantDataSo.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2f1d72dffa804297d96e89ddda2031e141e11a4d537e3424dbcd16aae483d89b -size 749 +oid sha256:e3e71453eefb8324f2f75708608b31b51a57ce3fd649c1f1132423c729b0f5ab +size 751 diff --git a/Assets/_DDD/_Addressables/So/RestaurantPlayerDataSo.asset b/Assets/_DDD/_Addressables/So/RestaurantPlayerDataSo.asset index ce6a5112f..bf784e973 100644 --- a/Assets/_DDD/_Addressables/So/RestaurantPlayerDataSo.asset +++ b/Assets/_DDD/_Addressables/So/RestaurantPlayerDataSo.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ba402a04cf41de0b58a0c0256cd6f32d9abab3a157b790ce9c1095187c6815ed -size 1906 +oid sha256:c5dac55c49e139f8386dcacf4c7fdfd1c3f6c5c8d7a4062a4fa93764e962ef2a +size 2001 diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantPlayer.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantPlayer.cs index 3c17ceceb..b6da0e8c4 100644 --- a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantPlayer.cs +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantPlayer.cs @@ -1,31 +1,34 @@ using System.Threading.Tasks; -using UnityEditor; using UnityEngine; namespace DDD { public class CreateRestaurantPlayer : RestaurantFlowTask { - [SerializeField] - private Vector3 _spawnPosition; + [SerializeField] private Vector3 _spawnPosition = new(0, 0, 15f); + [SerializeField] private Transform _spawnParent; - private GameObject playerPrefab; - - public override async Task ReadyFlowTask() + public override Task ReadyFlowTask() { - playerPrefab = await AssetManager.LoadAsset(CommonConstants.RestaurantPlayer); + return Task.CompletedTask; } public override Task RunFlowTask() { - // TODO : Player exist check + if (PlayerManager.Instance.GetPlayer() != null) + { + return Task.CompletedTask; + } - var player = PrefabUtility.InstantiatePrefab(playerPrefab) as GameObject; - player.transform.position = _spawnPosition; - player.transform.rotation = playerPrefab.transform.rotation; - player.name = CommonConstants.RestaurantPlayer; - CameraManager.Instance.GetCameraGameObject(CameraType.RestaurantBaseCamera) - .SetFollowAndLookAtTarget(player.transform); + var playerPrefab = RestaurantDataSo.instance.PlayerData.PlayerPrefab; + if (playerPrefab == null) + { + Debug.LogError("PlayerPrefab이 설정되지 않았습니다!"); + return Task.CompletedTask; + } + + GameObject player = Instantiate(playerPrefab, _spawnPosition, playerPrefab.transform.rotation, _spawnParent); + player.name = playerPrefab.name; return Task.CompletedTask; } diff --git a/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs b/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs index a94350b54..56ef4f6e2 100644 --- a/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs +++ b/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs @@ -30,7 +30,7 @@ public async Task Init() { await LoadData(); await RestaurantDataSo.instance.LoadData(); - InitializeAllFlowControllers(); + await InitializeAllFlowControllers(); } public void PostInit() @@ -42,7 +42,7 @@ private void RegisterFlowHandler() GameFlowManager.Instance.FlowHandlers.Add(this); } - private void InitializeAllFlowControllers() + private async Task InitializeAllFlowControllers() { // Create controllers and initialize them foreach (var restaurantFlowControllerType in RestaurantFlowControllerTypes) @@ -51,12 +51,12 @@ private void InitializeAllFlowControllers() var newController = ScriptableObject.CreateInstance(restaurantFlowControllerType); var newFlowController = newController as RestaurantFlowController; _restaurantFlowControllers.Add(newFlowController); - newFlowController.InitializeController(); + await newFlowController.InitializeController(); } foreach (var restaurantFlowController in _restaurantFlowControllers) { - restaurantFlowController.InitializeState(); + await restaurantFlowController.InitializeState(); } } diff --git a/Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantPlayerDataSo.cs b/Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantPlayerDataSo.cs index ea76e5dc7..3b65efbdc 100644 --- a/Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantPlayerDataSo.cs +++ b/Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantPlayerDataSo.cs @@ -6,6 +6,8 @@ namespace DDD [CreateAssetMenu(fileName = "RestaurantPlayerDataSo", menuName = "RestaurantData/RestaurantPlayerDataSo")] public class RestaurantPlayerDataSo : ScriptableObject { + public GameObject PlayerPrefab; + public bool IsDrawLineDebug = true; public bool IsMoveEnabled = true; diff --git a/Assets/_DDD/_Scripts/RestaurantData/RestaurantDataSo.cs b/Assets/_DDD/_Scripts/RestaurantData/RestaurantDataSo.cs index d2cc6839e..89607427f 100644 --- a/Assets/_DDD/_Scripts/RestaurantData/RestaurantDataSo.cs +++ b/Assets/_DDD/_Scripts/RestaurantData/RestaurantDataSo.cs @@ -10,8 +10,8 @@ namespace DDD public class RestaurantDataSo : ScriptableSingleton { [Header("Asset References")] - [SerializeField] private AssetReference RestaurantPlayerDataSo; - [SerializeField] private AssetReference RestaurantManagementDataSo; + [SerializeField] private AssetReference _restaurantPlayerDataSo; + [SerializeField] private AssetReference _restaurantManagementDataSo; public RestaurantPlayerDataSo PlayerData { get; private set; } public RestaurantManagementDataSo ManagementData { get; private set; } @@ -25,8 +25,8 @@ public async Task LoadData() return; } - var playerHandle = RestaurantPlayerDataSo.LoadAssetAsync(); - var managementHandle = RestaurantManagementDataSo.LoadAssetAsync(); + var playerHandle = _restaurantPlayerDataSo.LoadAssetAsync(); + var managementHandle = _restaurantManagementDataSo.LoadAssetAsync(); await playerHandle.Task; await managementHandle.Task; @@ -40,8 +40,8 @@ private void OnDisable() { if (!_isLoaded) return; - RestaurantPlayerDataSo.ReleaseAsset(); - RestaurantManagementDataSo.ReleaseAsset(); + _restaurantPlayerDataSo.ReleaseAsset(); + _restaurantManagementDataSo.ReleaseAsset(); _isLoaded = false; }