1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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<UnityWebRequest> mDownloadWWWList = new List<UnityWebRequest>();
- 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();
- }
- }
- }
|