| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | using System.Collections;using System.Collections.Generic;using UnityEngine;using System.IO;using AIPagedLod;using UnityEngine.Networking;using LitJson;public class DownloadTileFileManager : MonoBehaviour{    public static DownloadTileFileManager 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 StartDownloadTileFile(LoadDataFromUrl loader,TileUrlInfo info)    {        StartCoroutine(DownloadTileFile(loader,info));    }    public IEnumerator DownloadTileFile(LoadDataFromUrl loadDataFromUrl, TileUrlInfo info)    {        string url = info.mTileFileUrl;        UnityWebRequest www = UnityWebRequest.Get(url);        www.timeout = 10;        yield return www.SendWebRequest();        if (www.isHttpError || www.isNetworkError)        {            Debug.Log(www.error + " " + url);        }        else        {            B3dmFileLoader loader = new B3dmFileLoader();            loader.LoadObjectMeshInfoFromData(www.downloadHandler.data);            loader.mTileName = info.mBasicInfo.mContent;            loader.mTileDirPath = info.mBasicInfo.mContent;            PagedLod pagedLod = LoadPagedLodFromFileManager.LoadPagedLod(loader, loadDataFromUrl.mCurrentLoadManager.transform);            pagedLod.mBasicInfo = info.mBasicInfo;            pagedLod.mBasicInfoDict = info.mBasicInfoDict;            pagedLod.LoadB3dmBasicInfo(loader);            pagedLod.GetMeshRenders();            pagedLod.mIsRootTile = true;            pagedLod.mSelfLevel = 14;            LoadPagedLodFromFileManager.GenerateColliderObject(pagedLod);            loadDataFromUrl.DoLoadTileFileFinished();        }    }}
 |