| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 | 
							- using AIPagedLod;
 
- using LitJson;
 
- using System.Collections;
 
- using System.Collections.Generic;
 
- using UnityEngine;
 
- using UnityEngine.Networking;
 
- using UnityEngine.UI;
 
- using UnityEngine.Events;
 
- using Unity.VisualScripting;
 
- using DG.Tweening;
 
- using UnityAsync;
 
- using System.Threading.Tasks;
 
- using UnityEngine.UIElements;
 
- [System.Serializable]
 
- public class TileUrlInfo
 
- {
 
-     public string mTileSetUrl;
 
-     public string mTileFileUrl;
 
-     public Dictionary<string, B3dmBasicInfo> mBasicInfoDict = new Dictionary<string, B3dmBasicInfo>();//���ڵ�ӵ��
 
-     public B3dmBasicInfo mBasicInfo = new B3dmBasicInfo();
 
-     public PagedLod mPagedLod;
 
- }
 
- public class LoadDataFromUrl : MonoBehaviour
 
- {
 
-     public bool mIsAutoLoad = false;
 
-     public string mTileSetUrl = "";
 
-     public string mTileSetUrlLocal = "";
 
-     public bool useLocalUrl = true;
 
-     public List<TileUrlInfo> mTileUrlList = new List<TileUrlInfo>();
 
-     public GameObject mLoadManagerPrefab;
 
-     public Vector3 mDataCenter;
 
-     [HideInInspector] public int mCurrentLoadTileSetIndex = 0;
 
-     [HideInInspector] public int mTileSetLoadedCount = 0;
 
-     [HideInInspector] public int mCurrentLoadTileFileIndex = 0;
 
-     [HideInInspector] public int mTileFileLoadedCount = 0;
 
-     public UnityEvent mLoadRootTileSetEvent;
 
-     public UnityEvent mLoadTileSetEvent; 
 
-     public UnityEvent mLoadTileFileEvent;
 
-     protected string mBaseUrl;
 
-     protected bool mIsStartLoadTileSetJson = false;
 
-     protected bool mIsStartLoadTileFile = false;
 
-     public bool testCenterPos = false;
 
-     public Vector3 centerPos = new Vector3(0, 0, 0);
 
-     [HideInInspector] public LoadPagedLodFromFileManager mCurrentLoadManager;
 
-     public Vector3 foucusPos;
 
-     public B3dmBasicInfo currentBasicInfo;
 
-     void Start()
 
-     {
 
-         if(mIsAutoLoad)
 
-         {
 
-             PagedLodConfig.mInstance.mIsLoadFromUrl = true;
 
-             StartDownloadRootTileSetJson();
 
-             
 
-         }
 
-     }
 
-     #region --------------------------StartDownloadTileFile
 
-     public void StartDownloadTileFile()
 
-     {
 
-         CreateLoadManager();
 
-         mIsStartLoadTileFile = true;
 
-     }
 
-     void CreateLoadManager()
 
-     {
 
-         GameObject loadManagerObject = GameObject.Instantiate(mLoadManagerPrefab);
 
-         LoadPagedLodFromFileManager loadManager = loadManagerObject.GetComponent<LoadPagedLodFromFileManager>();
 
-         loadManagerObject.transform.SetParent(transform);
 
-         loadManagerObject.transform.localPosition = Vector3.zero;
 
-         loadManagerObject.transform.localEulerAngles = Vector3.zero;
 
-         loadManagerObject.transform.localScale = Vector3.one;
 
-         loadManager.mConfig.mDataName = "";
 
-         loadManager.mConfig.mDataPath = "";
 
-         loadManager.mConfig.mIsUpdate = false;
 
-         loadManager.mConfig.mBaseUrl = mBaseUrl;
 
-         mCurrentLoadManager = loadManager;
 
-     }
 
-     #endregion
 
-     #region ---------------------StartLoadTileSetJson
 
-     private void Update()
 
-     {
 
-         if (testCenterPos) {
 
-             Vector3 center = transform.TransformPoint(centerPos);
 
-             AroundCamera around = Camera.main.GetComponent<AroundCamera>();
 
-             MouseTranslate translate = around.target.GetComponent<MouseTranslate>();
 
-             translate.transform.position = center;
 
-             translate.CurrentOffset = translate.targetOffset = center - translate.areaSettings.center.position;
 
-             translate.enabled = true;
 
-         }
 
-         if (mIsStartLoadTileSetJson)
 
-         {
 
-             if (DownloadTileSetManager.mInstance.CanDownload())
 
-             {
 
-                 if (mCurrentLoadTileSetIndex < mTileUrlList.Count)
 
-                 {
 
-                     TileUrlInfo info = mTileUrlList[mCurrentLoadTileSetIndex];
 
-                     DownloadTileSetManager.mInstance.StartDownloadTileSetJson(this, info);
 
-                 }
 
-                 mCurrentLoadTileSetIndex++;
 
-             }
 
-         }
 
-         else if (mIsStartLoadTileFile)
 
-         {
 
-             if (DownloadTileFileManager.mInstance.CanDownload())
 
-             {
 
-                 if (mCurrentLoadTileFileIndex < mTileUrlList.Count)
 
-                 {
 
-                     TileUrlInfo info = mTileUrlList[mCurrentLoadTileFileIndex];
 
-                     DownloadTileFileManager.mInstance.StartDownloadTileFile(this, info);
 
-                 }
 
-                 mCurrentLoadTileFileIndex++;
 
-             }
 
-         }
 
-     }
 
-     public void DoLoadTileFileFinished()
 
-     {
 
-         mTileFileLoadedCount++;
 
-         mLoadTileFileEvent.Invoke();
 
-         if (mTileFileLoadedCount == mTileUrlList.Count) //ȫ��TileFile�������
 
-         {
 
-             mIsStartLoadTileFile = false;
 
-             mCurrentLoadTileFileIndex = 0;
 
-             mCurrentLoadManager.mConfig.mIsUpdate = true;
 
-         }
 
-     }
 
-     public void DoLoadTileSetFinished()
 
-     {
 
-         mTileSetLoadedCount++;
 
-         mLoadTileSetEvent.Invoke();
 
-         if(mTileSetLoadedCount == mTileUrlList.Count) //ȫ��TileSet�������
 
-         {
 
-             mIsStartLoadTileSetJson = false;
 
-             mCurrentLoadTileFileIndex = 0;
 
-             if(mIsAutoLoad)
 
-             {
 
-                 StartDownloadTileFile();//��ʼ������Ƭ����
 
-             }
 
-         }
 
-     }
 
-     #endregion
 
-     #region -----------------------StartDownloadRootTileSetJson
 
-     //�������������ݵ�tileset.Json�ļ�
 
-     public void StartDownloadRootTileSetJson()
 
-     {
 
-         StartCoroutine(DownloadRootTileSetJson());
 
-     }
 
-     public IEnumerator DownloadRootTileSetJson()
 
-     {
 
-         string url = mTileSetUrl;
 
-         if (useLocalUrl) {
 
-             mTileSetUrlLocal = Application.streamingAssetsPath + "/" + mTileSetUrlLocal;
 
-             url = mTileSetUrlLocal;
 
-         }
 
-         mBaseUrl = url.Replace("tileset.json", "");
 
-         UnityWebRequest www = UnityWebRequest.Get(url);
 
-         www.timeout = 10;
 
-         yield return www.SendWebRequest();
 
-         if (www.isHttpError || www.isNetworkError)
 
-         {
 
-             Debug.Log(www.error + " " + url);
 
-         }
 
-         else
 
-         {
 
-             JsonData resultJson = JsonMapper.ToObject(www.downloadHandler.text);
 
-             JsonData tileJson = resultJson["root"];
 
-             B3dmBasicInfo basicInfo = PagedLod.LoadTileBasicInfo(tileJson);
 
-             currentBasicInfo = basicInfo;
 
-             //Vector3 center = transform.TransformPoint(basicInfo.mBounds.center);
 
-             //mDataCenter = center;
 
-             //SetCameraToCenter(center);
 
-             JsonData children = tileJson["children"];
 
-             for (int i = 0; i < children.Count; ++i)
 
-             {
 
-                 string childUrl = children[i]["content"]["uri"].ToString();
 
-                 string tileUrl = mBaseUrl + childUrl.Replace("./","");
 
-                 TileUrlInfo info = new TileUrlInfo();
 
-                 info.mTileSetUrl = tileUrl;
 
-                 mTileUrlList.Add(info);
 
-             }
 
-             mCurrentLoadTileSetIndex = 0;
 
-             mIsStartLoadTileSetJson = true;
 
-             mLoadRootTileSetEvent.Invoke();
 
-         }
 
-     }
 
-     #endregion
 
-     public void ForceSacnMode() {
 
-         if (!this.gameObject.activeSelf) this.gameObject.SetActive(true);
 
-         SetCameraToCenter(foucusPos);
 
-     }
 
-     public async Task SetCameraToCenter(Vector3 centerPos = default(Vector3))
 
-     {
 
-         if (Camera.main.GetComponent<AroundCamera>() != null)
 
-         {
 
-             AroundCamera around = Camera.main.GetComponent<AroundCamera>();
 
-             MouseTranslate translate = around.target.GetComponent<MouseTranslate>();
 
-             translate.enabled = false;
 
-             if (centerPos == Vector3.zero)
 
-             {
 
-                 await Await.Until(() =>
 
-                 {
 
-                     return currentBasicInfo.mBounds.center != Vector3.zero;
 
-                 });
 
-                 print("�������");
 
-                 print(currentBasicInfo.mBounds.center);
 
-                 Vector3 center = transform.TransformPoint(currentBasicInfo.mBounds.center);
 
-                 translate.transform.position = center;
 
-                 translate.CurrentOffset = translate.targetOffset = center - translate.areaSettings.center.position;
 
-                 translate.enabled = true;
 
-             }
 
-             else
 
-             {
 
-                 MeshRenderer fader = Camera.main.transform.GetChild(0).GetComponent<MeshRenderer>();
 
-                 fader.gameObject.SetActive(true);
 
-                 fader.material.DOColor(Color.white, 0.1f).onComplete = () =>
 
-                 {
 
-                     fader.material.DOColor(Color.clear, 1.5f).onComplete = () =>
 
-                     {
 
-                         fader.gameObject.SetActive(false);
 
-                     };
 
-                 };
 
-                 Vector3 center = transform.TransformPoint(centerPos);
 
-                 translate.transform.position = center;
 
-                 translate.CurrentOffset = translate.targetOffset = center - translate.areaSettings.center.position;
 
-                 translate.enabled = true;
 
-             }
 
-             //translate.transform.position = center;
 
-             //translate.CurrentOffset = translate.targetOffset = center - translate.areaSettings.center.position;
 
-             
 
-             //around.target.position = center;
 
-         }
 
-     }
 
-     
 
-     public void ResetTile()
 
-     {
 
-         mTileUrlList.Clear();
 
-         mCurrentLoadTileSetIndex = 0;
 
-         mCurrentLoadTileFileIndex = 0;
 
-         mTileSetLoadedCount = 0;
 
-         mTileFileLoadedCount = 0;
 
-         if (mCurrentLoadManager != null)
 
-         {
 
-             foreach(var item in mCurrentLoadManager.mPagedLodList)
 
-             {
 
-                 item.CollectChildTiles();
 
-             }
 
-             GameObject.Destroy(mCurrentLoadManager.gameObject);
 
-         }
 
-     }
 
- }
 
 
  |