313 lines
15 KiB
C#
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;
|
|
}
|
|
}
|