using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using UnityEngine; using Object = UnityEngine.Object; public class ResourceManager { // 资源池 private static Dictionary AssetPool = new Dictionary(); /// /// 读取数据 /// /// JSON要转成的类型 /// Json文件路径 /// public static T LoadJson(string fileName) { string json = null; string path = Path.Combine(Application.streamingAssetsPath, fileName); if (File.Exists(path)) { json = File.ReadAllText(path); } T data = JsonConvert.DeserializeObject(json); return data; } /// /// 初始化 /// public static void LoadAsset(string name,Action loadAssetCallback) where T : Object { T t = null; if (AssetPool.ContainsKey(name)) { t = AssetPool[name] as T; loadAssetCallback(t); } else { AssetBundleManager.Instance.StartCoroutine(AssetBundleManager.Instance.Load("equipimage.unity3d", name, loadAssetCallback)); } } public static void AddAsset(string name, Object asset) { if (!AssetPool.ContainsKey(name)) { AssetPool.Add(name, asset); } } public static void Dispose() { AssetPool = null; GC.Collect(); } }