/// <summary> /// 异步加载asset资源 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="assetPath"></param> /// <param name="objName"></param> /// <param name="callBack"></param> /// <returns></returns> public static IEnumerator LoadAsyncAssetBundles <T>(string assetPath, string objName, LoadCallBack <T> callBack) where T : Object { assetPath = assetPath.ToLower(); AssetBundleCreateRequest assetRequest = AssetBundle.LoadFromFileAsync(Application.dataPath + "/AssetBundles/" + assetPath); yield return(assetRequest); if (assetRequest == null && callBack != null) { callBack.loadFail("加载失败:指定assetPath下没有该资源"); } AsyncListAssetBundle.Add(assetRequest.assetBundle); AssetBundleRequest objRequest = assetRequest.assetBundle.LoadAssetAsync <T>(objName); yield return(objRequest); AsyncListAssetBundle.Remove(assetRequest.assetBundle); assetRequest.assetBundle.Unload(false); if (objRequest == null && callBack != null) { callBack.loadFail("加载失败:指定assetPath下没有该名字的obj"); } T obj = objRequest.asset as T; if (obj != null && callBack != null) { callBack.loadSuccess(obj); } }