using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using AIPagedLod; using UnityEngine.Networking; using LitJson; public class DownloadTileSetManager : MonoBehaviour { public static DownloadTileSetManager mInstance; public List mDownloadWWWList = new List(); public int mMaxCoroutineCount = 2; public int mCurrentCoroutineCount = 0; void Awake() { mInstance = this; } void Update() { mDownloadWWWList.RemoveAll(item => item.isDone); mCurrentCoroutineCount = mDownloadWWWList.Count; } public bool CanDownload() { return mDownloadWWWList.Count < mMaxCoroutineCount; } public void StartDownloadTileSetJson(LoadDataFromUrl loader,TileUrlInfo info) { StartCoroutine(DownloadTileSetJson(loader,info)); } public IEnumerator DownloadTileSetJson(LoadDataFromUrl loader, TileUrlInfo info) { string url = info.mTileSetUrl; UnityWebRequest www = UnityWebRequest.Get(url); www.timeout = 10; yield return www.SendWebRequest(); if (www.isHttpError || www.isNetworkError) { Debug.Log(www.error + " " + url); } else { B3dmBasicInfo rootTileInfo = null; info.mBasicInfoDict = PagedLod.LoadTileSetJsonText(www.downloadHandler.text, ref rootTileInfo); info.mBasicInfo = rootTileInfo; string tileUrl = info.mTileSetUrl.Replace("tileset.json", ""); info.mTileFileUrl = tileUrl + info.mBasicInfo.mContent + ".b3dm"; loader.DoLoadTileSetFinished(); } } }