using FirstVillain.Converter; using FirstVillain.Entities; using FirstVillain.EventBus; using FirstVillain.Singleton; using Newtonsoft.Json; using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; //±ÔÄ¢ : Å×À̺íÀ» ÇÊ¿äÇÒ ¶§¸¶´Ù ·ÎµåÇؼ­ »ç¿ëÇÑ´Ù. public class TableManager : UnitySingleton { public int LoadTableCount { get; private set; } = 0; public void LoadTable(E_TABLE table, Action> result) { LoadTableCount++; LoadTableAsset(table, result); } private void LoadTableAsset(E_TABLE table, Action> result) { AddressableManager.Instance.LoadAssetAsync(table.ToString(), asset => { result(JsonConvert.DeserializeObject>(asset.text)); }); } #region LoadAssets #endregion LoadAssets //Å×ÀÌºíº°·Î Å×ÀÌºí °¡Á®¿À´Â ÇÔ¼ö¸¦ °è¼Ó Ãß°¡ÇØ Áà¾ßÇÏ´Â ´ÜÁ¡... #region Prop public void GetPropInfoById(E_TABLE table, int id, Action result) { LoadTableAsset(table, loaded => { var list = loaded.list; result(list.Find(arg => arg.Id == id)); }); } public void GetPropInfoList(E_TABLE table, Action> result) { LoadTableAsset(table, loaded => { result(loaded.list); }); } #endregion Prop }