using System; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEditor; using UnityEngine; using UnityEngine.Accessibility; public class CabinetUIManager : MonoBehaviour { public static CabinetUIManager Instance; public Menu current_menu; public List cabinet_ui_base_list = new List(); public List door_list = new List(); public List transparentGlows_list = new List(); /// /// 机柜所有高亮 /// [Header("机柜所有高亮组件")] public List cabine_hights; /// /// 当前机柜高亮 /// [Header("当前机柜在高亮的高亮组件")] public List cabine_hights_now; public Transform Stagin; public List uPosItems; public GameObject jieDiWang; private void Awake() { Instance = this; uPosItems = transform.GetComponentsInChildren(true).ToList(); for (int i = 0; i < GameManager.Inst.Cabinets_go.Count; i++) { cabine_hights.Add(GameManager.Inst.Cabinets_go[i].transform.Find("高亮").gameObject); } } private void Start() { init(); } public void init() { door_list = GetComponentsInChildren(true).ToList(); cabinet_ui_base_list = GetComponentsInChildren(true).ToList(); transparentGlows_list = GetComponentsInChildren(true).ToList(); } public static void ChangeMenu(Menu menu) { TransparentGlowManage.Inst.renewALL(TransparentGlowManage.Inst.transparentGlows); if (menu != Menu.M_全景监控_摄像头) { ExtendedFlycam.Inst.peiDianShi[1].GetComponent().enabled = true; ExtendedFlycam.Inst.jiFang[1].GetComponent().enabled = true; } else { ExtendedFlycam.Inst.peiDianShi[1].GetComponent().enabled = false; ExtendedFlycam.Inst.jiFang[1].GetComponent().enabled = false; } if (menu != Menu.M_全景监控_柜门状态) { } Instance.current_menu = menu; PatternChoose.Inst.current_menu = menu; Instance.cabinet_ui_base_list.ForEach(x => x.OnMenuChanged(menu)); RobotManager.Instance.OnMenuChanged(menu); } public bool SomeMethod() { var l = Array.FindAll(cabinet_ui_base_list.ToArray(), (item) => { return (item.name.Contains("报警") || item.name.Contains("温湿度")); }); for (int i = 0; i < l.Length; i++) { if (l[i].gameObject.activeSelf) { return false; } } return true; } #region Editor Test [ContextMenu("Editor Change Menu")] public void ChangeMenu() { ChangeMenu(current_menu); } public GameObject 温湿度预制体; [ContextMenu("创建温湿度预制体")] public void CreateWsd() { for (int i = 0; i < transform.childCount; i++) { if (transform.GetChild(i).Find("温湿度")) continue; var go = Instantiate(温湿度预制体); go.name = "温湿度"; go.transform.SetParent(transform.GetChild(i)); } } #endregion } public enum Menu { M_全景监控_设备告警, M_全景监控_温度, M_全景监控_湿度, M_全景监控_柜门状态, M_全景监控_红外监测, M_全景监控_现场作业, M_全景监控_摄像头, M_数字机房_机柜容量, M_数字机房_接地网, M_数字机房_线缆连接_展示, M_数字机房_线缆连接_配置, M_数字机房_场景管理, M_数字机房_智能巡检, M_数字机房_线缆组配置, M_全景监控_烟感, M_全景监控_水浸, None, M_远程指导, M_智慧运维, M_教学培训, }