diff --git a/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset b/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset index 0eebad66b..61fb24fef 100644 --- a/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset +++ b/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fe77014fb42d3a9743e3d5a7a58e289a758a8c68aa2097ec3eb64968c8b2c9ae -size 27744 +oid sha256:d20a85268616dfd7559e8b9efe1e58f72a9cb6a91cad858e4f790a7704c44fc5 +size 26385 diff --git a/Assets/_DDD/_Addressables/So/GameState.meta b/Assets/_DDD/_Addressables/So/GameState.meta deleted file mode 100644 index 5eed61ed6..000000000 --- a/Assets/_DDD/_Addressables/So/GameState.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 713d65ef3d932164c97b5250f647bf77 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_DDD/_Addressables/So/GameState/GameLevelState.asset b/Assets/_DDD/_Addressables/So/GameState/GameLevelState.asset deleted file mode 100644 index 943821526..000000000 --- a/Assets/_DDD/_Addressables/So/GameState/GameLevelState.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:95b75075956d7faf586fe623fb7841c11c5f3da82da10661644dcc2d721d0cb6 -size 414 diff --git a/Assets/_DDD/_Addressables/So/GameState/GameLevelState.asset.meta b/Assets/_DDD/_Addressables/So/GameState/GameLevelState.asset.meta deleted file mode 100644 index 5b226bea4..000000000 --- a/Assets/_DDD/_Addressables/So/GameState/GameLevelState.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: fc0639e78dfcb4b47ac6ec82ee0d6213 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_DDD/_Addressables/So/GameState/GameState.asset b/Assets/_DDD/_Addressables/So/GameState/GameState.asset deleted file mode 100644 index 7b5e34d0d..000000000 --- a/Assets/_DDD/_Addressables/So/GameState/GameState.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3b10904608cf9d79dbf03b4b594771b8f73b9ed3359a13fa3dc25c707adc29f2 -size 561 diff --git a/Assets/_DDD/_Addressables/So/GameState/GameState.asset.meta b/Assets/_DDD/_Addressables/So/GameState/GameState.asset.meta deleted file mode 100644 index dd001673d..000000000 --- a/Assets/_DDD/_Addressables/So/GameState/GameState.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 57f96cac976cace4b8107ab44edb0f71 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_DDD/_Addressables/So/RestaurantState.meta b/Assets/_DDD/_Addressables/So/RestaurantState.meta deleted file mode 100644 index c337eb51d..000000000 --- a/Assets/_DDD/_Addressables/So/RestaurantState.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3afa6356ede647e47a79b8b1cd285b5e -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantCustomerState.asset b/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantCustomerState.asset deleted file mode 100644 index ac4fe870e..000000000 --- a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantCustomerState.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ac9141575c112eb12ff960612f79f73ae33890e0afe7c217bb19b3f35259105f -size 475 diff --git a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantCustomerState.asset.meta b/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantCustomerState.asset.meta deleted file mode 100644 index bb411c048..000000000 --- a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantCustomerState.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: eade044ef7a61604d8dcf56168d40026 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantEnvironmentState.asset b/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantEnvironmentState.asset deleted file mode 100644 index 3c02fb7f2..000000000 --- a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantEnvironmentState.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fce6c80efa2e8e7ef81f547231051e90ca90aa52e1b0a9a3ddc426292df1784a -size 441 diff --git a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantEnvironmentState.asset.meta b/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantEnvironmentState.asset.meta deleted file mode 100644 index 456b83c23..000000000 --- a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantEnvironmentState.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 93204a2af0c46094696d74538897e540 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantManagementState.asset b/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantManagementState.asset deleted file mode 100644 index 003f198ae..000000000 --- a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantManagementState.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c64006fbe8bf5473afde869fca42b72a8813cbc5309d5773078fbbfa1fec4791 -size 585 diff --git a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantManagementState.asset.meta b/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantManagementState.asset.meta deleted file mode 100644 index 856312f07..000000000 --- a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantManagementState.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b2b9375a9a66227409de828e13255ea2 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantPlayerState.asset b/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantPlayerState.asset deleted file mode 100644 index e20059ee2..000000000 --- a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantPlayerState.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a0a7a11fbd33d3df48dab17dd4cb9f953219018b8769dca3f2cecbb99224f534 -size 410 diff --git a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantPlayerState.asset.meta b/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantPlayerState.asset.meta deleted file mode 100644 index a74e9f2c9..000000000 --- a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantPlayerState.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d6b2937b862326145a9a94a56e7c3192 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantRunState.asset b/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantRunState.asset deleted file mode 100644 index 0aba6e509..000000000 --- a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantRunState.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6b8e992f894c1a057a8caef61bb79152eea3cf85e8e1022e5e30b439e104c7f4 -size 407 diff --git a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantRunState.asset.meta b/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantRunState.asset.meta deleted file mode 100644 index 21950fbe6..000000000 --- a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantRunState.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3d463f7458658794396953c3bd77ad57 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantState.asset b/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantState.asset deleted file mode 100644 index 2f029ca9e..000000000 --- a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantState.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:49437db4fe9cb3ba2db13dcb72fa05925e525042469f1dc02f452704db05d709 -size 1262 diff --git a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantState.asset.meta b/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantState.asset.meta deleted file mode 100644 index 8021739f8..000000000 --- a/Assets/_DDD/_Addressables/So/RestaurantState/RestaurantState.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 9cd28a9cdddf5dd4e9c729431a345509 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/_DDD/_Scripts/GameController/GameController.cs b/Assets/_DDD/_Scripts/GameController/GameController.cs index 0f7cd86a3..e55d54ab9 100644 --- a/Assets/_DDD/_Scripts/GameController/GameController.cs +++ b/Assets/_DDD/_Scripts/GameController/GameController.cs @@ -9,7 +9,6 @@ namespace DDD public class GameController : Singleton, IManager, IGameFlowHandler { [SerializeField] private AssetReference _gameData; - [SerializeField] private AssetReference _gameState; public GameData GameData { get; private set; } public GameState GameState { get; private set; } @@ -19,6 +18,7 @@ public class GameController : Singleton, IManager, IGameFlowHand public void PreInit() { + LoadOrCreateRestaurantState(); RegisterFlowHandler(); } @@ -26,7 +26,6 @@ public async Task Init() { await LoadData(); await GameData.LoadData(); - await GameState.LoadData(); await InitializeAllFlowControllers(); } @@ -34,6 +33,12 @@ public void PostInit() { } + private void LoadOrCreateRestaurantState() + { + // TODO : Load states from saved files. if none, create them. + GameState = ScriptableObject.CreateInstance(); + } + private void RegisterFlowHandler() { GameFlowManager.Instance.FlowHandlers.Add(this); @@ -60,16 +65,12 @@ private async Task InitializeAllFlowControllers() private async Task LoadData() { var gameDataHandle = _gameData.LoadAssetAsync(); - var gameStateHandle = _gameState.LoadAssetAsync(); await gameDataHandle.Task; - await gameStateHandle.Task; GameData = gameDataHandle.Result; - GameState = gameStateHandle.Result; Debug.Assert(GameData != null, "GameData is null"); - Debug.Assert(GameState != null, "GameState is null"); await Task.CompletedTask; } diff --git a/Assets/_DDD/_Scripts/GameState/GameLevelState.cs b/Assets/_DDD/_Scripts/GameState/GameLevelState.cs index 3b85a3428..ecaae8fda 100644 --- a/Assets/_DDD/_Scripts/GameState/GameLevelState.cs +++ b/Assets/_DDD/_Scripts/GameState/GameLevelState.cs @@ -2,7 +2,6 @@ namespace DDD { - [CreateAssetMenu(fileName = "GameLevelState", menuName = "GameState/GameLevelState")] public class GameLevelState : ScriptableObject { public int Level = 1; diff --git a/Assets/_DDD/_Scripts/GameState/GameState.cs b/Assets/_DDD/_Scripts/GameState/GameState.cs index 90e0aaa54..e87610fc5 100644 --- a/Assets/_DDD/_Scripts/GameState/GameState.cs +++ b/Assets/_DDD/_Scripts/GameState/GameState.cs @@ -1,40 +1,17 @@ -using System.Threading.Tasks; using UnityEngine; using UnityEngine.AddressableAssets; namespace DDD { - [CreateAssetMenu(fileName = "GameState", menuName = "GameState/GameState")] public class GameState : ScriptableObject { [SerializeField] private AssetReference _gameLevelState; public GameLevelState LevelState { get; private set; } - private bool _isLoaded; - - private void OnDisable() + private void OnEnable() { - if (_isLoaded == false) return; - - _gameLevelState.ReleaseAsset(); - _isLoaded = false; - } - - public async Task LoadData() - { - if (_isLoaded) - { - return; - } - - var gameLevelStateHandle = _gameLevelState.LoadAssetAsync(); - await gameLevelStateHandle.Task; - - LevelState = gameLevelStateHandle.Result; - Debug.Assert(LevelState != null, "GameLevelState is null"); - - _isLoaded = true; + LevelState = CreateInstance(); } } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs b/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs index 63e781891..e3d82a1a2 100644 --- a/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs +++ b/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs @@ -9,7 +9,6 @@ namespace DDD public class RestaurantController : Singleton, IManager, IGameFlowHandler { [SerializeField] private AssetReference _restaurantData; - [SerializeField] private AssetReference _restaurantState; public RestaurantData RestaurantData { get; private set; } public RestaurantState RestaurantState { get; private set; } @@ -28,6 +27,7 @@ public class RestaurantController : Singleton, IManager, I public void PreInit() { + LoadOrCreateRestaurantState(); RegisterFlowHandler(); } @@ -35,7 +35,6 @@ public async Task Init() { await LoadData(); await RestaurantData.LoadData(); - await RestaurantState.LoadData(); await InitializeAllFlowControllers(); } @@ -43,6 +42,12 @@ public void PostInit() { } + private void LoadOrCreateRestaurantState() + { + // TODO : Load states from saved files. if none, create them. + RestaurantState = ScriptableObject.CreateInstance(); + } + private void RegisterFlowHandler() { GameFlowManager.Instance.FlowHandlers.Add(this); @@ -69,16 +74,12 @@ private async Task InitializeAllFlowControllers() private async Task LoadData() { var restaurantDataHandle = _restaurantData.LoadAssetAsync(); - var restaurantStateHandle = _restaurantState.LoadAssetAsync(); await restaurantDataHandle.Task; - await restaurantStateHandle.Task; RestaurantData = restaurantDataHandle.Result; - RestaurantState = restaurantStateHandle.Result; Debug.Assert(RestaurantData != null, "RestaurantData is null"); - Debug.Assert(RestaurantState != null, "RestaurantState is null"); } public async Task OnReadyNewFlow(GameFlowState newFlowState) diff --git a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantCustomerState.cs b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantCustomerState.cs index 0e2d78fb6..9e9f1ca13 100644 --- a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantCustomerState.cs +++ b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantCustomerState.cs @@ -8,7 +8,6 @@ namespace DDD { - [CreateAssetMenu(fileName = "RestaurantCustomerState", menuName = "RestaurantState/RestaurantCustomerState")] public class RestaurantCustomerState : ScriptableObject, IGameFlowHandler { [Title("스폰 제어")] diff --git a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantEnvironmentState.cs b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantEnvironmentState.cs index e73f77f79..75313179a 100644 --- a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantEnvironmentState.cs +++ b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantEnvironmentState.cs @@ -17,7 +17,6 @@ public RestaurantPropLocation(string id, Vector2 position) } } - [CreateAssetMenu(fileName = "RestaurantEnvironmentState", menuName = "RestaurantState/RestaurantEnvironmentState")] public class RestaurantEnvironmentState : ScriptableObject { public List Props = new List(); diff --git a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantManagementState.cs b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantManagementState.cs index 440a3f01c..7b375b979 100644 --- a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantManagementState.cs +++ b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantManagementState.cs @@ -5,7 +5,6 @@ namespace DDD { - [CreateAssetMenu(fileName = "RestaurantManagementState", menuName = "RestaurantState/RestaurantManagementState")] public class RestaurantManagementState : ScriptableObject { // TODO : 데이터에서 초기화하고, 동적으로 변경 diff --git a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantPlayerState.cs b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantPlayerState.cs index e4463ef8c..b5a8deaf1 100644 --- a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantPlayerState.cs +++ b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantPlayerState.cs @@ -2,7 +2,6 @@ namespace DDD { - [CreateAssetMenu(fileName = "RestaurantPlayerState", menuName = "RestaurantState/RestaurantPlayerState")] public class RestaurantPlayerState : ScriptableObject { diff --git a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantRunState.cs b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantRunState.cs index eaa260051..7f730ffcc 100644 --- a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantRunState.cs +++ b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantRunState.cs @@ -2,7 +2,6 @@ namespace DDD { - [CreateAssetMenu(fileName = "RestaurantRunState", menuName = "RestaurantState/RestaurantRunState")] public class RestaurantRunState : ScriptableObject { diff --git a/Assets/_DDD/_Scripts/RestaurantState/RestaurantState.cs b/Assets/_DDD/_Scripts/RestaurantState/RestaurantState.cs index e8f95c68b..1d3533637 100644 --- a/Assets/_DDD/_Scripts/RestaurantState/RestaurantState.cs +++ b/Assets/_DDD/_Scripts/RestaurantState/RestaurantState.cs @@ -1,70 +1,22 @@ -using System.Threading.Tasks; using UnityEngine; -using UnityEngine.AddressableAssets; namespace DDD { - [CreateAssetMenu(fileName = "RestaurantState", menuName = "RestaurantState/RestaurantState", order = 0)] public class RestaurantState : ScriptableObject { - [SerializeField] private AssetReference _restaurantManagementState; - [SerializeField] private AssetReference _restaurantRunState; - [SerializeField] private AssetReference _restaurantEnvironmentState; - [SerializeField] private AssetReference _restaurantPlayerState; - [SerializeField] private AssetReference _restaurantCustomerState; - public RestaurantManagementState ManagementState { get; private set; } public RestaurantRunState RunState { get; private set; } public RestaurantEnvironmentState EnvironmentState { get; private set; } public RestaurantPlayerState PlayerState { get; private set; } public RestaurantCustomerState CustomerState { get; private set; } - private bool _isLoaded; - - private void OnDisable() + private void OnEnable() { - if (_isLoaded == false) return; - - _restaurantManagementState.ReleaseAsset(); - _restaurantRunState.ReleaseAsset(); - _restaurantEnvironmentState.ReleaseAsset(); - _restaurantPlayerState.ReleaseAsset(); - _restaurantCustomerState.ReleaseAsset(); - _isLoaded = false; - } - - public async Task LoadData() - { - if (_isLoaded) - { - return; - } - - var restaurantManagementStateHandle = _restaurantManagementState.LoadAssetAsync(); - var restaurantRunStateHandle = _restaurantRunState.LoadAssetAsync(); - var restaurantEnvironmentStateHandle = _restaurantEnvironmentState.LoadAssetAsync(); - var restaurantPlayerStateHandle = _restaurantPlayerState.LoadAssetAsync(); - var restaurantCustomerStateHandle = _restaurantCustomerState.LoadAssetAsync(); - - await restaurantManagementStateHandle.Task; - await restaurantRunStateHandle.Task; - await restaurantEnvironmentStateHandle.Task; - await restaurantPlayerStateHandle.Task; - await restaurantCustomerStateHandle.Task; - - ManagementState = restaurantManagementStateHandle.Result; - RunState = restaurantRunStateHandle.Result; - EnvironmentState = restaurantEnvironmentStateHandle.Result; - PlayerState = restaurantPlayerStateHandle.Result; - CustomerState = restaurantCustomerStateHandle.Result; - - Debug.Assert(ManagementState != null, "RestaurantManagementState is null"); - Debug.Assert(RunState != null, "RestaurantRunState is null"); - Debug.Assert(EnvironmentState != null, "RestaurantEnvironmentState is null"); - Debug.Assert(PlayerState != null, "RestaurantPlayerState is null"); - Debug.Assert(CustomerState != null, "RestaurantCustomerState is null"); - - _isLoaded = true; + ManagementState = CreateInstance(); + RunState = CreateInstance(); + EnvironmentState = CreateInstance(); + PlayerState = CreateInstance(); + CustomerState = CreateInstance(); } } } \ No newline at end of file