using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; //public enum UILayer { HUD,Main,Popup} public class UIManager : BaseMgr { //这里面要维护很多数据, //基本上所有的覆盖全屏 UI 的对象都要覆盖, //涉及到 UI 外面的也会有一些全部使用 public, //目前他控制的应该只是某个UI的显示与否,就是Setactive,其他的逻辑不要写 //find找不到禁用对象解决的办法就是不要把任何对象设置禁用,哪怕费点事禁用全部组件就行 //这样除了在update里面不要写find之外,哪里都能找到这个gameobject了 //调试归调试,但是还是要给前端调用接口,还是要分散到当事对象上面 //比如启用工人视角这个函数就应该放在工人这个gameobject上面 public GameObject mainCamera; public GameObject worker; public GameObject PopUpCanvas; public Transform ICONS; protected override void Awake() { base.Awake(); } public void ConvertToWorkerView() { mainCamera.SetActive(false); worker.SetActive(true); for (int i = 0; i < ICONS.childCount; i++) { ICONS.GetChild(i).transform.localScale = Vector3.one * 0.5f;//工人视角下重置大小 } } public void ConvertToFreeView() { mainCamera.SetActive(true); worker.SetActive(false); } public void DisplayData(string targetName) { if (PopUpCanvas.transform.Find(targetName) != null) { PopUpCanvas.transform.Find(targetName).gameObject.SetActive(true); } } public void HideData() { for(int i = 0; i < PopUpCanvas.transform.childCount; i++) { PopUpCanvas.transform.GetChild(i).gameObject.SetActive(false); } } public void CloseSluicesHeight() { PopUpCanvas.transform.Find("Sluices").gameObject.SetActive(false); } public void OpenSluicesHeight() { PopUpCanvas.transform.Find("Sluices").gameObject.SetActive(true); } }