GQ_Communicate/GQ_TongXin/Assets/Scripts/WJ/UIToCabinet.cs

313 lines
15 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEditor;
using UnityEngine;
using UnityEngine.UI;
using static WebInteraction;
public class UIToCabinet : MonoBehaviour
{
public List<Toggle> toggles = new List<Toggle>();
public GameObject rongLaing;
// Start is called before the first frame update
void Start()
{
toggles = GetComponentsInChildren<Toggle>(true).ToList();
for (int i = 0; i < toggles.Count; i++)
{
var index = i;
toggles[i].onValueChanged.AddListener((ison) =>
{
GameManager.Inst.power_close();
rongLaing.SetActive(false);
FloorController.Inst.FloorNormal();
CreateLine createLine = PatternChoose.Inst.transform.Find("画线").GetComponent<CreateLine>();
LineGroupManager.Instance.HidePanel();
for (int i = 0; i < GameManager.Inst.pop_ups.Count; i++)
{
GameManager.Inst.pop_ups[i].SetActive(false);
}
if (ison)
{
Debug.Log("第" + index);
switch (toggles[index].name)
{
case "Toggle_设备告警":
{
StartCoroutine(Loadinfo(Menu.M_全景监控_设备告警, (x) =>
{
if (string.IsNullOrEmpty(x)) return;
init(Menu.M_全景监控_设备告警);
ExtendedFlycam.Inst.QuanJing();
PatternChoose.Inst.transform.Find("Panel搜索框").GetComponent<SearchName>().LoadCabinet(SearchName.SearchType.);
GameManager.Inst.search_box.SetActive(true);
CabinetUIManager.ChangeMenu(Menu.M_全景监控_设备告警);
}));
}
break;
case "Toggle_全景监控":
{
StartCoroutine(Loadinfo(Menu.M_全景监控_设备告警, (x) =>
{
if (string.IsNullOrEmpty(x)) return;
init(Menu.M_全景监控_设备告警);
ExtendedFlycam.Inst.QuanJing();
PatternChoose.Inst.transform.Find("Panel搜索框").GetComponent<SearchName>().LoadCabinet(SearchName.SearchType.);
GameManager.Inst.search_box.SetActive(true);
CabinetUIManager.ChangeMenu(Menu.M_全景监控_设备告警);
}));
}
break;
case "Toggle_数字孪生":
{
rongLaing.SetActive(true);
init(Menu.M_数字孪生_机柜容量);
ExtendedFlycam.Inst.QuanJing();
GameManager.Inst.DisplayCapacity(ison);
PatternChoose.Inst.transform.Find("Panel搜索框").GetComponent<SearchName>().LoadCabinet(SearchName.SearchType.);
CabinetUIManager.ChangeMenu(Menu.M_数字孪生_机柜容量);
}
break;
case "Toggle_温湿度":
{
StartCoroutine(Loadinfo(Menu.M_全景监控_温度, (x) =>
{
if (string.IsNullOrEmpty(x)) return;
init(Menu.M_全景监控_温度);
ExtendedFlycam.Inst.QuanJing();
PatternChoose.Inst.transform.Find("Panel搜索框").GetComponent<SearchName>().LoadCabinet(SearchName.SearchType.);
GameManager.Inst.search_box.SetActive(true);
CabinetUIManager.ChangeMenu(Menu.M_全景监控_温度);
}));
}
break;
case "Toggle_柜门状态":
{
init(Menu.M_全景监控_柜门状态);
ExtendedFlycam.Inst.QuanJing();
GameManager.Inst.DoorCondition(/*ison*/);
PatternChoose.Inst.transform.Find("Panel搜索框").GetComponent<SearchName>().LoadCabinet(SearchName.SearchType.);
GameManager.Inst.search_box.SetActive(true);
CabinetUIManager.ChangeMenu(Menu.M_全景监控_柜门状态);
}
break;
case "Toggle_红外监测":
{
init(Menu.M_全景监控_红外监测);
ExtendedFlycam.Inst.QuanJing();
GameManager.Inst.search_box.SetActive(false);
CabinetUIManager.ChangeMenu(Menu.M_全景监控_红外监测);
}
break;
case "Toggle_现场作业":
{
init(Menu.M_全景监控_现场作业);
ExtendedFlycam.Inst.QuanJing();
if (BoolMonitor.Value)
{
WebInteraction.Inst.isWorkPlay = true;
WebInteraction.Inst.OpenTicket();
}
CabinetUIManager.ChangeMenu(Menu.M_全景监控_现场作业);
}
break;
case "Toggle_摄像头":
{
init(Menu.M_全景监控_摄像头);
ExtendedFlycam.Inst.QuanJing();
//if (BoolMonitor.Value)
// WebInteraction.Inst.OpenVideo();
PatternChoose.Inst.transform.Find("Panel搜索框").GetComponent<SearchName>().LoadCabinet(SearchName.SearchType.);
CabinetUIManager.ChangeMenu(Menu.M_全景监控_摄像头);
}
break;
case "Toggle_机柜容量":
{
rongLaing.SetActive(true);
init(Menu.M_数字孪生_机柜容量);
ExtendedFlycam.Inst.QuanJing();
PatternChoose.Inst.transform.Find("Panel搜索框").GetComponent<SearchName>().LoadCabinet(SearchName.SearchType.);
GameManager.Inst.DisplayCapacity(ison);
CabinetUIManager.ChangeMenu(Menu.M_数字孪生_机柜容量);
}
break;
case "Toggle_接地网":
{
FloorController.Inst.FloorTransparent();
init(Menu.M_数字孪生_接地网);
ExtendedFlycam.Inst.QuanJing();
CabinetUIManager.ChangeMenu(Menu.M_数字孪生_接地网);
}
break;
case "Toggle_线缆链接":
{
init(Menu.M_数字孪生_线缆连接_展示);
ExtendedFlycam.Inst.QuanJing();
//CreateLine createLine = PatternChoose.Inst.transform.Find("画线").GetComponent<CreateLine>();
createLine.OnMenuChanged(Menu.M_数字孪生_线缆连接_展示);
CabinetUIManager.ChangeMenu(Menu.M_数字孪生_线缆连接_展示);
}
break;
case "Toggle_场景管理":
{
init(Menu.M_数字孪生_场景管理);
ExtendedFlycam.Inst.QuanJing();
GameManager.Inst.power_open();
CabinetUIManager.ChangeMenu(Menu.M_数字孪生_场景管理);
}
break;
case "Toggle_智能巡检":
{
init(Menu.M_数字孪生_智能巡检);
ExtendedFlycam.Inst.QuanJing();
GameManager.Inst.search_box.SetActive(false);
CabinetUIManager.ChangeMenu(Menu.M_数字孪生_智能巡检);
}
break;
case "Toggle_温度":
{
StartCoroutine(Loadinfo(Menu.M_全景监控_温度, (x) =>
{
if (string.IsNullOrEmpty(x)) return;
init(Menu.M_全景监控_温度);
ExtendedFlycam.Inst.QuanJing();
PatternChoose.Inst.transform.Find("Panel搜索框").GetComponent<SearchName>().LoadCabinet(SearchName.SearchType.);
CabinetUIManager.ChangeMenu(Menu.M_全景监控_温度);
}));
}
break;
case "Toggle_湿度":
{
init(Menu.M_全景监控_湿度);
ExtendedFlycam.Inst.QuanJing();
PatternChoose.Inst.transform.Find("Panel搜索框").GetComponent<SearchName>().LoadCabinet(SearchName.SearchType.);
CabinetUIManager.ChangeMenu(Menu.M_全景监控_湿度);
}
break;
case "Toggle_烟感":
{
init(Menu.M_全景监控_烟感);
ExtendedFlycam.Inst.QuanJing();
PatternChoose.Inst.transform.Find("Panel搜索框").GetComponent<SearchName>().LoadCabinet(SearchName.SearchType.);
CabinetUIManager.ChangeMenu(Menu.M_全景监控_烟感);
}
break;
case "Toggle_线缆连接展示":
{
init(Menu.M_数字孪生_线缆连接_展示);
ExtendedFlycam.Inst.QuanJing();
//PatternChoose.Inst.transform.Find("Panel搜索框").GetComponent<SearchName>().LoadCabinet(SearchName.SearchType.线缆_展示);
createLine.OnMenuChanged(Menu.M_数字孪生_线缆连接_展示);
CabinetUIManager.ChangeMenu(Menu.M_数字孪生_线缆连接_展示);
}
break;
case "Toggle_线缆连接配置":
{
init(Menu.M_数字孪生_线缆连接_配置);
ExtendedFlycam.Inst.QuanJing();
GameManager.Inst.power_open();
CabinetUIManager.ChangeMenu(Menu.M_数字孪生_线缆连接_配置);
}
break;
case "Toggle_线缆组配置":
{
LineGroupManager.Instance.ShowPanel();
SecondConfirmPanel.Instance.panel_object.SetActive(false);
init(Menu.M_数字孪生_线缆组配置);
CabinetUIManager.ChangeMenu(Menu.M_数字孪生_线缆组配置);
}
break;
default:
break;
}
createLine.deletxianLan(CabinetUIManager.Instance.current_menu);
}
});
}
}
public IEnumerator Loadinfo(Menu menu,Action<string> callback)
{
if (menu == Menu.M_全景监控_温度)
{
yield return StartCoroutine(GameManager.Inst.init_ENV());
GameManager.Inst.Load_ENV();
callback?.Invoke("1");
}
else if (menu == Menu.M_全景监控_设备告警)
{
yield return StartCoroutine(GameManager.Inst.init_TmsAlarm());
GameManager.Inst.Load_TmsAlarm();
callback?.Invoke("1");
}
}
// Update is called once per frame
void Update()
{
}
public void init(Menu menu)
{
if (WebInteraction.Inst.isWorkPlay && menu != Menu.M_全景监控_现场作业)
WebInteraction.Inst.CloseTicket();
CreateLine createLine = PatternChoose.Inst.transform.Find("画线").GetComponent<CreateLine>();
if (!CheckAllChildrenActive(createLine.gameObject) && menu != Menu.M_数字孪生_线缆连接_展示)
{
for (int i = 0; i < createLine.transform.childCount; i++)
{
createLine.transform.GetChild(i).gameObject.SetActive(false);
}
}
if (menu == Menu.M_数字孪生_线缆连接_配置 || menu == Menu.M_数字孪生_场景管理 ||
menu == Menu.M_数字孪生_线缆组配置)
{
for (int i = 0; i < CabinetUIManager.Instance.door_list.Count; i++)
{
CabinetUIManager.Instance.door_list[i].gameObject.SetActive(false);
}
}
else
{
for (int i = 0; i < CabinetUIManager.Instance.door_list.Count; i++)
{
CabinetUIManager.Instance.door_list[i].gameObject.SetActive(true);
}
}
}
/// <summary>
/// 判断父物体下子物体是否都为隐藏
/// </summary>
/// <param name="parent"></param>
/// <returns></returns>
bool CheckAllChildrenActive(GameObject parent)
{
int childCount = parent.transform.childCount;
for (int i = 0; i < childCount; i++)
{
GameObject child = parent.transform.GetChild(i).gameObject;
if (child.activeSelf)
{
return false;
}
}
return true;
}
}