XunJianManager.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. using System.Collections.Generic;
  2. using TMPro;
  3. using UnityEngine;
  4. using UnityEngine.Events;
  5. using UnityEngine.UI;
  6. namespace GHZLangChao
  7. {
  8. public class XunJianManager : AbstractController
  9. {
  10. [SerializeField] private GameObject SearchPanel; // 搜索面板
  11. [SerializeField] private Transform SearchPanelContent; // 搜索面板Item父物体
  12. [SerializeField] private GameObject FaultPanel; // 故障面板
  13. [SerializeField] private Transform FaultPanelContent;// 故障面板Item父物体
  14. [SerializeField] private Toggle Serach_Toggle;
  15. public Toggle Fault_Toggle;
  16. [SerializeField] private Button Nav_Btn; // 导航按钮
  17. [SerializeField] private Button ShowHideSelect_Btn; // 显示隐藏按钮
  18. [SerializeField] private List<Sprite> SelectBtnSprite; // 显示隐藏按钮不同样式的Sprite
  19. public GameObject UI;
  20. public UnityEvent OnReset = new UnityEvent();
  21. public static XunJianManager Instance;
  22. private void Awake()
  23. {
  24. if(Instance==null)
  25. Instance = this;
  26. }
  27. private void OnEnable()
  28. {
  29. OnReset?.Invoke();
  30. }
  31. void Start()
  32. {
  33. Serach_Toggle.onValueChanged.AddListener(SerachChange);
  34. Fault_Toggle.onValueChanged.AddListener(FaultChange);
  35. Nav_Btn.onClick.AddListener(StartNav);
  36. ShowHideSelect_Btn.onClick.AddListener(ShowHideSelect);
  37. //UICallManager.Instance.MachineRoomInit();
  38. XRRGBCamera.Instance.stopCamera();
  39. Init();
  40. }
  41. public void StartXunJain()
  42. {
  43. UI.SetActive(false);
  44. }
  45. public void Next()
  46. {
  47. ShowXunJian.Instance.gotoWindow(ScenesManager.SceneType.ShowDH);
  48. }
  49. public void back()
  50. {
  51. ScenesManager.Instance.showWindow(ScenesManager.SceneType.ShowChoose);
  52. // BladeServerManager.Instance.isDaoHang = false;
  53. }
  54. public void Navigationing()
  55. {
  56. // ScenesManager.Instance.showWindow(ScenesManager.SceneType.Navigationing);
  57. }
  58. /// <summary>
  59. /// 初始化数据
  60. /// </summary>
  61. private void Init()
  62. {
  63. // 初始化搜索面板
  64. List<MachineParameters> listEquipmentData = UICallManager.Instance.GetMachineRoomData("").listEquipmentData;
  65. for (int i = 0; i < listEquipmentData.Count;i++)
  66. {
  67. GameObject go = Instantiate(InstantiateSystem.Instance.BlueObject.SearchPanel_Item,SearchPanelContent);
  68. SearchPanel_Item item = go.GetComponent<SearchPanel_Item>();
  69. item.Init(listEquipmentData[i]);
  70. go.name = listEquipmentData[i].deviceName;
  71. }
  72. // 初始化故障面板
  73. List<AlarmData> ListAlarmData = UICallManager.Instance.GetAlarmData();
  74. for (int i = 0; i < ListAlarmData.Count;i++)
  75. {
  76. GameObject go = Instantiate(InstantiateSystem.Instance.BlueObject.FaultPanel_Item,FaultPanelContent);
  77. FaultPanel_Item item = go.GetComponent<FaultPanel_Item>();
  78. item.Init(ListAlarmData[i]);
  79. go.name = ListAlarmData[i].title;
  80. }
  81. }
  82. #region UI监听
  83. public void SerachChange(bool arg0)
  84. {
  85. if (arg0)
  86. {
  87. Serach_Toggle.transform.GetComponent<TextMeshProUGUI>().fontStyle = (FontStyles)FontStyle.Bold;
  88. SearchPanel.SetActive(true);
  89. }
  90. else
  91. {
  92. Serach_Toggle.transform.GetComponent<TextMeshProUGUI>().fontStyle = (FontStyles)FontStyle.Normal;
  93. SearchPanel.SetActive(false);
  94. }
  95. }
  96. public void FaultChange(bool arg0)
  97. {
  98. if (arg0)
  99. {
  100. Fault_Toggle.transform.GetComponent<TextMeshProUGUI>().fontStyle = (FontStyles)FontStyle.Bold;
  101. FaultPanel.SetActive(true);
  102. }
  103. else
  104. {
  105. Fault_Toggle.transform.GetComponent<TextMeshProUGUI>().fontStyle = (FontStyles)FontStyle.Normal;
  106. FaultPanel.SetActive(false);
  107. }
  108. }
  109. private static MachineParameters mMachineParameter;
  110. public static MachineParameters MachineParameters
  111. {
  112. get => mMachineParameter;
  113. set => mMachineParameter = value;
  114. }
  115. private static AlarmData mAlarmData;
  116. public static AlarmData AlarmData
  117. {
  118. get => mAlarmData;
  119. set => mAlarmData = value;
  120. }
  121. private void StartNav()
  122. {
  123. if(Serach_Toggle.isOn)
  124. {
  125. MachineObj obj = UICallManager.Instance.QueryMachineObj(MachineParameters.deviceId);
  126. if (obj != null)
  127. UICallManager.Instance.NavigatorServer(obj);
  128. else
  129. Debug.LogError(" 未查找到设备 " + MachineParameters.deviceId +" "+ MachineParameters.deviceName);
  130. }
  131. else if(Fault_Toggle.isOn)
  132. {
  133. MachineObj obj = UICallManager.Instance.QueryMachineObj(AlarmData.deviceId);
  134. if (obj != null)
  135. UICallManager.Instance.NavigatorServer(obj);
  136. else
  137. Debug.LogError(" 未查找到设备 " + AlarmData.deviceId + " " + AlarmData.deviceName);
  138. }
  139. }
  140. private bool ShowSelect = true;
  141. private void ShowHideSelect()
  142. {
  143. ShowSelect = !ShowSelect;
  144. if(ShowSelect) // 选中状态
  145. {
  146. ShowHideSelect_Btn.transform.GetChild(0).GetComponent<Image>().sprite = SelectBtnSprite[0];
  147. }
  148. else // 隐藏状态
  149. {
  150. ShowHideSelect_Btn.transform.GetChild(0).GetComponent<Image>().sprite = SelectBtnSprite[1];
  151. }
  152. }
  153. public void showRTC()
  154. {
  155. LangChaoRTC.Instance.showRTC(0);
  156. ScenesManager.Instance.showWindow(ScenesManager.SceneType.RoomMain);
  157. }
  158. #endregion
  159. public void OpenEidotrCanvas()
  160. {
  161. SettingMachineRoomData.Instance.EditorOpen();
  162. }
  163. }
  164. }