using UnityEngine; using UnityEngine.UI; public class InfoWnd : MonoBehaviour { [Header("小地图")] public Transform mapPoint1; public Transform mapPoint2; public Transform[] mapTransGroup; public RectTransform poivt; public RectTransform MiniSuiDao; [HideInInspector] public RectTransform[] miniMapIconGroup; public float miniMapWidth; public float miniMapHeight; private Vector2 mapAspect; private Vector2[] miniMapTransPos; [Header("监控")] public Transform viewCameraPearent; private GameObject[] viewCameraGroup; public Dropdown viewDropdown; [Header("时间")] public Text timeTxt; public Text testTxt; [Header("当前分辨率")] public float _screenWidth; public float _screenHeight; public void Init() { //小地图长宽 mapAspect.x = Mathf.Abs(mapPoint1.position.z - mapPoint2.position.z); mapAspect.y = Mathf.Abs(mapPoint1.position.x - mapPoint2.position.x); //AI Icon miniMapIconGroup = new RectTransform[AISys.Instance._AIIconPreant.childCount]; for (int i = 0; i < miniMapIconGroup.Length; i++) { miniMapIconGroup[i] = AISys.Instance._AIIconPreant.GetChild(i).GetComponent(); } miniMapTransPos = new Vector2[miniMapIconGroup.Length]; mapTransGroup = new Transform[AISys.Instance._workerGroup.Length]; for (int i = 0; i < mapTransGroup.Length; i++) { mapTransGroup[i] = AISys.Instance._workerGroup[i].transform; } //初始化监控窗口 InitViewCamera(); InitDropdown(); miniMapWidth = MiniSuiDao.rect.width; miniMapHeight =MiniSuiDao.rect.height; _screenHeight = 1080; _screenWidth = 1920; } private void Update() { CalcMiniMapTrans(miniMapIconGroup); timeTxt.text = System.DateTime.Now.Hour.ToString()+":"+ System.DateTime.Now.Minute.ToString()+":"+ System.DateTime.Now.Second.ToString(); //Debug.Log("X-"+ Screen.width/1920f ); // Debug.Log("Y-" + Screen.height/1080f ); // miniMapWidth = 545*( 1920f/Screen.width); // miniMapHeight =200*( 1080f/Screen.height); testTxt.text = "宽:" + Screen.width + "-高:" + Screen.height; if(Input.GetKey(KeyCode.LeftShift)&& Input.GetKey(KeyCode.T)) { testTxt.gameObject.SetActive(true); } } private void InitViewCamera() { viewCameraGroup = new GameObject[viewCameraPearent.childCount]; for (int i = 0; i < viewCameraPearent.childCount; i++) { viewCameraGroup[i] = viewCameraPearent.GetChild(i).gameObject; } } public void ShowViewCamera(int index) { for (int i = 0; i < viewCameraGroup.Length; i++) { viewCameraGroup[i].SetActive(false); } viewCameraGroup[index].SetActive(true); } public void CalcMiniMapTrans(RectTransform[] group) { for (int i = 0; i < group.Length; i++) { //(单位坐标x,y/地面长,宽)*小地图高,宽 693-40 miniMapTransPos[i].x = Mathf.Abs(mapTransGroup[i].position.z-mapPoint1.position.z) / (mapAspect.x / miniMapWidth)+poivt.localPosition.x; miniMapTransPos[i].y = Mathf.Abs(mapTransGroup[i].position.x- mapPoint1.position.x) / (mapAspect.y /miniMapHeight)+ poivt.localPosition.y ; miniMapTransPos[i].x *= (Screen.width/_screenWidth); miniMapTransPos[i].y *= ( Screen.height/_screenHeight); group[i].localPosition = miniMapTransPos[i]; } } private void InitDropdown() { viewDropdown.onValueChanged.AddListener((int a) => { ShowViewCamera(viewDropdown.value); }); } }