/// <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); } }
/// <summary> /// 外部接口,获取游戏物体 /// </summary> /// <param name="ID"></param> /// <param name="OnDownloadGameobjCallback"></param> public void GetDownloadObj(int ID, DownloadGameobjCallback OnDownloadGameobjCallback) { StartCoroutine(GetTargetObj(ID, OnDownloadGameobjCallback)); }