| 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();        }    }}
 |