Пример #1
0
    /// <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);
        }
    }
Пример #2
0
    /// <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);
        }
    }
Пример #3
0
    /// <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);
        }
    }
Пример #4
0
    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);
        }
    }
Пример #5
0
    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);
        }
    }