Example #1
0
    /// <summary>
    /// 从缓存或者url获取游戏对象
    /// </summary>
    /// <param name="ID"></param>
    /// <param name="callback"></param>
    /// <returns></returns>
    private IEnumerator GetTargetObj(int ID, DownloadGameobjCallback callback)
    {
        GameObject obj  = null;
        LoadData   data = GetLoadDataByID(ID);

        if (data == null)
        {
            yield break;
        }

        // 下载资源
        WWW www = WWW.LoadFromCacheOrDownload(data.URL, data.version);

        yield return(www);

        if (www.isDone)
        {
            AssetBundle bundle = www.assetBundle;

            //去掉加载资源文件的后缀名
            string prefabeName = System.Text.RegularExpressions.Regex.Replace(data.resName, ".assetbundle", "");

            // 获取到assetbundle中的游戏对象
            obj = bundle.LoadAsset(prefabeName) as GameObject;
            bundle.Unload(false);
        }
        else
        {
        }

        if (callback != null)
        {
            callback(obj);
        }
    }
Example #2
0
    /// <summary>
    /// 外部接口,获取游戏物体
    /// </summary>
    /// <param name="ID"></param>
    /// <param name="OnDownloadGameobjCallback"></param>

    public void GetDownloadObj(int ID, DownloadGameobjCallback OnDownloadGameobjCallback)
    {
        StartCoroutine(GetTargetObj(ID, OnDownloadGameobjCallback));
    }