using System; using System.Threading.Tasks; using UnityEngine; namespace DDD { public class DataManager : Singleton, IManager { public ItemDataSo ItemDataSo { get; private set; } public FoodDataSo FoodDataSo { get; private set; } public EnvironmentDataSo EnvironmentDataSo { get; private set; } public bool IsInitialized { get; private set; } public void Init() { } public async void PostInit() { try { ItemDataSo = await AssetManager.LoadAsset(DataConstants.ItemDataSo); FoodDataSo = await AssetManager.LoadAsset(DataConstants.FoodDataSo); EnvironmentDataSo = await AssetManager.LoadAsset(DataConstants.EnvironmentDataSo); IsInitialized = true; } catch (Exception e) { Debug.LogError($"So bind failed\n{e.Message}"); } } public async Task WaitUntilInitialized() { while (!IsInitialized) { await Task.Yield(); } } // TODO : So가 늘어나는 경우 관리 방법 변경 필요성이 있음 // GetItemType(id) // GetItemImage // GetItemName } }