コード例 #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 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);
        }
    }
コード例 #2
0
ファイル: LoadWWWUtil.cs プロジェクト: wobushiren79/ThaumAge
    /// <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);
        }
    }