public IEnumerator LoadAssetBundleAsync <T>(string abName, string assetName, System.Action <T> callback) where T : Object { AssetBundle ab = null; if (!m_abMaps.TryGetValue(abName, out ab)) { AssetBundleCreateRequest request = AssetBundle.LoadFromFileAsync(Utility.GetResourcePath(abName)); yield return(request); ab = request.assetBundle; if (null != ab) { Utility.Log("[AssetMgr] load ab file ok:" + abName); m_abMaps[abName] = ab; } else { Utility.LogError("[AssetMgr] load ab file failed:" + abName); yield return(false); } } if (assetName.Length > 0 && callback != null) { T assetObject = ab.LoadAsset <T>(assetName); if (null != assetObject) { callback.DynamicInvoke(assetObject); } else { Utility.LogError("[AssetMgr] load asset failed:" + assetName); } } }
public void LoadLocalAsset <T>(string assetName, System.Action <T> callback) where T : Object { if (assetName.Length > 0 && callback != null) { T assetObject = UnityEditor.AssetDatabase.LoadAssetAtPath <T>(assetName); if (null != assetObject) { callback.DynamicInvoke(assetObject); } else { Utility.LogError("[AssetMgr] load local asset failed:" + assetName); } } }