public void LoadAsset <T>(AssetId assetId, LoadAssetDelegate <T> onFinished) where T : Object { Object asset = null; if (cacheResDic.TryGetValue(assetId.ResId, out asset)) { onFinished(true, string.Empty, asset as T); } else { #if UNITY_EDITORF LoadAssetFromLocal <T>(assetId, onFinished); #else LoadAssetFromBundle <T>(assetId, onFinished); #endif } }
// private IEnumerator DoInit() // { // //load asset bundle mainifest // AssetBundle assetBundle = AssetBundle.LoadFromFile(string.Format("{0}/{1}", ResUtility.GetAssetBundlesPath(), ResUtility.ASSET_BUNDLE_FOLDER_NAME)); // AssetBundleManifest manifest = assetBundle.LoadAsset<AssetBundleManifest>(ResUtility.ASSET_BUNDLE_MANIFEST); // } private void LoadAssetFromLocal <T>(AssetId assetId, LoadAssetDelegate <T> onFinished) where T : Object { T asset = null; bool isSuccess = false; string errMsg = string.Empty; try { asset = AssetDatabase.LoadAssetAtPath <T>(assetId.ToString()); } catch (System.Exception e) { isSuccess = false; errMsg = e.ToString(); } finally { onFinished(isSuccess, errMsg, asset); } }
public async Task <T> LoadAsset <T>(AssetId assetId) where T : Object { Object o = null; if (cacheResDic.TryGetValue(assetId, out o)) { return(o as T); } // #if UNITY_EDITOR // LoadAssetFromLocal<T>(assetId, onFinished); // #else AssetBundle bundle = null; T asset = null; try { if (cacheAssetBundleDic.TryGetValue(assetId.BundleId, out bundle)) { asset = await LoadAssetFromBundle <T>(assetId, bundle); } else { bundle = await LoadAssetBundle(assetId.BundleId); asset = await LoadAssetFromBundle <T>(assetId, bundle); } } catch (System.Exception e) { ZLog.Debug(e.Message + "=====" + e.StackTrace); } return(asset); //#endif }
public async Task <T> LoadAsset <T>(string assetName) where T : Object { return(await LoadAsset <T>(AssetId.Create("", assetName))); }
public static string ConvertAssetIdToAssetBundlePath(AssetId assetId) { return($"{GetAssetBundlesPath()}/{assetId.ToString()}"); }
public static string ConvertAssetIdToAssetBundlePath(AssetId assetId) { return(string.Format("{0}/{1}", GetAssetBundlesPath(), assetId.ToString())); }
private void LoadAssetFromBundle <T>(AssetId assetId, LoadAssetDelegate <T> onFinished) where T : Object { }