123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using AIPagedLod;
- using System.IO;
- using UnityEngine.UI;
- using System;
- using System.Threading;
- using UnityEngine.EventSystems;
- public class LoadDataRumtime : MonoBehaviour
- {
- public bool mIsAutoLoad = false;
- public Transform mDataContent;
- public GameObject mDataItemPrefab;
- public Transform mDataLoadInfoContent;
- public GameObject mDataLoadInfoItemPrefab;
- public GameObject mDataLoadInfoObject;
- public bool mIsGetDataCenter = false;
- public static bool mSetCameraPositionFlag = true;
- private Dictionary<string, RuntimeDataLoader> mDataLoaderDict = new Dictionary<string, RuntimeDataLoader>();
- private bool mIsLoadFinished = false;
- void Start()
- {
- if (mIsAutoLoad)
- {
- StartLoadData();
- }
- }
- public void StartLoadData()
- {
- mDataLoaderDict.Clear();
- List<string> dataNameList = new List<string>(PagedLodConfig.mInstance.mDataPathDict.Keys);
- for (int i = 0; i < dataNameList.Count; ++i)
- {
- string dataName = dataNameList[i];
- GameObject dataLoaderObject = new GameObject(dataName);
- RuntimeDataLoader dataLoader = dataLoaderObject.AddComponent<RuntimeDataLoader>();
- //if (PagedLodConfig.mInstance.mTileDataType == TileDataType.OSGB)
- //{
- // dataLoader.transform.Rotate(new Vector3(-90f, 0f, 0f));
- //}
- dataLoader.mDataPathInfo = PagedLodConfig.mInstance.mDataPathDict[dataName];
- mDataLoaderDict.Add(dataName, dataLoader);
- //--------------------------------------------------------UI
- GameObject dataItem = GameObject.Instantiate(mDataItemPrefab);
- dataItem.SetActive(true);
- dataItem.transform.SetParent(mDataContent);
- dataItem.name = dataName;
- dataItem.GetComponentInChildren<Text>().text = dataName;
- dataItem.GetComponentInChildren<Button>().onClick.AddListener(SwitchCameraToData);
- GameObject dataLoadInfoItem = GameObject.Instantiate(mDataLoadInfoItemPrefab);
- dataLoadInfoItem.SetActive(true);
- dataLoadInfoItem.transform.SetParent(mDataLoadInfoContent);
- dataLoader.mDataLoadInfoItem = dataLoadInfoItem;
- dataLoader.StartLoad();
- }
- }
- void Update()
- {
- if (mDataLoaderDict.Count == 0) return ;
- if (mIsGetDataCenter)
- {
- if (Input.GetMouseButtonDown(0))
- {
- Ray cameraRay = Camera.main.ScreenPointToRay(Input.mousePosition);
- RaycastHit cameraHit;
- if (Physics.Raycast(cameraRay, out cameraHit, float.MaxValue))
- {
- if (mDataLoaderDict.Count > 0)
- {
- RuntimeDataLoader loader = new List<RuntimeDataLoader>(mDataLoaderDict.Values)[0];
- loader.mCenterPosition = cameraHit.point;
- loader.SaveDataCenterToConfigFile();
- SetCameraToCenter(loader.mCenterPosition);
- }
- }
- }
- }
- if (mIsLoadFinished) return;
- bool allFinished = true;
- foreach (KeyValuePair<string, RuntimeDataLoader> item in mDataLoaderDict)
- {
- if(!item.Value.mIsLoadFinished)
- {
- allFinished = false;
- break;
- }
- }
- if(allFinished)
- {
- foreach (KeyValuePair<string, RuntimeDataLoader> item in mDataLoaderDict)
- {
- item.Value.StartUpdateLod();
- }
- mDataLoadInfoObject.SetActive(false);
- mIsLoadFinished = true;
- }
- }
- public void SetIsGetDataCenter(bool flag)
- {
- mIsGetDataCenter = flag;
- }
- public void SwitchCameraToData()
- {
- GameObject dataItem = EventSystem.current.currentSelectedGameObject;
- SetCameraToCenter(mDataLoaderDict[dataItem.name].mCenterPosition);
- }
- public static void SetCameraToCenter(Vector3 center)
- {
- if (Camera.main.GetComponent<AroundCamera>() != null)
- {
- AroundCamera around = Camera.main.GetComponent<AroundCamera>();
- MouseTranslate translate = around.target.GetComponent<MouseTranslate>();
- translate.areaSettings.center.position = center;
- translate.transform.position = center;
- translate.CurrentOffset = translate.targetOffset = Vector3.zero;
- around.target.position = center;
- }
- }
- }
|