public void GetAsset <T>(string _name, Action <T[]> _callBack) where T : UnityEngine.Object { string assetName; if (getAssetPathDelegate != null) { string tmpName = getAssetPathDelegate(_name, typeof(T)); if (!string.IsNullOrEmpty(tmpName)) { assetName = tmpName; } else { assetName = _name; } } else { assetName = _name; } #if USE_ASSETBUNDLE IAssetManagerUnit unit; if (!dic.TryGetValue(assetName, out unit)) { unit = new AssetManagerUnit2 <T>(assetName); dic.Add(assetName, unit); } (unit as AssetManagerUnit2 <T>).Load(_callBack); #else UnityEngine.Object[] datas = AssetDatabase.LoadAllAssetsAtPath(assetName); List <T> tmpList = new List <T>(); for (int i = 0; i < datas.Length; i++) { UnityEngine.Object data = datas[i]; if (data is T) { tmpList.Add(data as T); } } T[] result = tmpList.ToArray(); _callBack(result); #endif }
public T[] GetAsset <T> (string _name, Action <T[], string> _callBack) where T : UnityEngine.Object { #if USE_ASSETBUNDLE AssetManagerUnit2 <T> unit; if (!dic.ContainsKey(_name)) { unit = new AssetManagerUnit2 <T> (_name); dic.Add(_name, unit); } else { unit = dic [_name] as AssetManagerUnit2 <T>; } unit.Load(_callBack); return(null); #else string msg; UnityEngine.Object[] datas = AssetDatabase.LoadAllAssetsAtPath(_name); if (datas == null) { msg = "Resource load fail:" + _name; } else { msg = string.Empty; } List <T> tmpList = new List <T>(); for (int i = 0; i < datas.Length; i++) { UnityEngine.Object data = datas[i]; if (data is T) { tmpList.Add(data as T); } } T[] result = tmpList.ToArray(); _callBack(result, msg); return(result); #endif }