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