/// <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); } }
/// <summary> /// 基础加载 /// </summary> /// <param name="type">1.本地 0.网络</param> /// <param name="imagePath"></param> /// <param name="image"></param> /// <returns></returns> public static IEnumerator LoadAsyncBaseTexture(int type, string imagePath, LoadCallBack <Texture2D> callBack) { string filePath = "file://" + imagePath; if (type == 1) { filePath = "file://" + imagePath; } else { filePath = imagePath; } WWW www = new WWW(filePath); yield return(www); if (callBack != null) { callBack.loadSuccess(www.texture); } }
/// <summary> /// 基础加载 /// </summary> /// <param name="type">1.本地 0.网络</param> /// <param name="imagePath"></param> /// <param name="image"></param> /// <returns></returns> public static IEnumerator LoadAsyncBaseImage(int type, string imagePath, Image image, LoadCallBack <Sprite> callBack) { string filePath = "file://" + imagePath; if (type == 1) { filePath = "file://" + imagePath; } else { filePath = imagePath; } WWW www = new WWW(filePath); yield return(www); image.sprite = Sprite.Create(www.texture, new Rect(0, 0, www.texture.width, www.texture.height), new Vector2(0.5f, 0.5f)); if (callBack != null) { callBack.loadSuccess(image.sprite); } }
public static IEnumerator LoadAsyncAssetBundlesTexture2DForBytes(string assetPath, string objName, LoadCallBack <Texture2D> callBack) { assetPath = assetPath.ToLower(); AssetBundleCreateRequest assetRequest = AssetBundle.LoadFromFileAsync(Application.dataPath + "/AssetBundles/" + assetPath); yield return(assetRequest); AsyncListAssetBundle.Add(assetRequest.assetBundle); AssetBundleRequest objRequest = assetRequest.assetBundle.LoadAssetAsync <TextAsset>(objName); yield return(objRequest); AsyncListAssetBundle.Remove(assetRequest.assetBundle); assetRequest.assetBundle.Unload(false); TextAsset textAsset = objRequest.asset as TextAsset; Texture2D texture = new Texture2D(1, 1); texture.LoadImage(textAsset.bytes); if (callBack != null) { callBack.loadSuccess(texture); } }
public static IEnumerator LoadAsyncAssetBundlesImageForBytes(string assetPath, string objName, Image image, LoadCallBack <Sprite> callBack) { assetPath = assetPath.ToLower(); AssetBundleCreateRequest assetRequest = AssetBundle.LoadFromFileAsync(Application.dataPath + "/AssetBundles/" + assetPath); yield return(assetRequest); AsyncListAssetBundle.Add(assetRequest.assetBundle); AssetBundleRequest objRequest = assetRequest.assetBundle.LoadAssetAsync <TextAsset>(objName); yield return(objRequest); AsyncListAssetBundle.Remove(assetRequest.assetBundle); assetRequest.assetBundle.Unload(false); TextAsset textAsset = objRequest.asset as TextAsset; Texture2D texture = new Texture2D(1, 1); texture.LoadImage(textAsset.bytes); image.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f)); if (callBack != null) { callBack.loadSuccess(image.sprite); } }