/// <summary> /// 异步加载asset资源 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="assetPath"></param> /// <param name="objName"></param> /// <param name="callBack"></param> /// <returns></returns> public static IEnumerator AsyncLoadAsset <T>(string assetPath, string objName, ILoadCallBack <T> callBack) where T : Object { assetPath = assetPath.ToLower(); AssetBundleCreateRequest assetRequest = AssetBundle.LoadFromFileAsync(assetPath); yield return(assetRequest); if (assetRequest == null && callBack != null) { callBack.LoadFail("加载失败:指定assetPath下没有该资源"); } AssetBundleRequest objRequest = assetRequest.assetBundle.LoadAssetAsync <T>(objName); yield return(objRequest); 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); } }
/// <summary> /// 异步-WWW加载 /// </summary> /// <param name="resPath"> 本地_ex: file://E:/Texture/icon_1.jpg 网络_ex:http://www.baidu.com </param> /// <returns></returns> //public static IEnumerator AsyncLoadData(string resPath, ILoadCallBack<WWW> callBack) //{ // WWW www = new WWW(resPath); // yield return www; // if (callBack != null) // callBack.LoadSuccess(www); //} public static IEnumerator AsyncLoadData(string resPath, ILoadCallBack <UnityWebRequest> callBack) { UnityWebRequest webRequest = new UnityWebRequest(resPath); yield return(webRequest); if (callBack != null) { callBack.LoadSuccess(webRequest); } }