DaoHangDataManager.cs 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using TMPro;
  4. using UnityEngine;
  5. using UnityEngine.Events;
  6. using UnityEngine.UI;
  7. using XRTool.Util;
  8. using static WindowConfig;
  9. public class DaoHangDataManager : MonoSingleton<DaoHangDataManager>
  10. {
  11. public bool Test = false;
  12. [SerializeField] private GameObject SearchPanel; // 搜索面板
  13. [SerializeField] private Transform SearchPanelContent; // 搜索面板Item父物体
  14. [SerializeField] private GameObject FaultPanel; // 故障面板
  15. [SerializeField] private Transform FaultPanelContent;// 故障面板Item父物体
  16. [SerializeField] private Button Serach_Btn;
  17. public Button Fault_Btn;
  18. private FontStyle FontStyleB = FontStyle.Bold;
  19. private FontStyle FontStyleN = FontStyle.Normal;
  20. [SerializeField] private TextMeshProUGUI Serach_Text;
  21. [SerializeField] private TextMeshProUGUI Fault_Text;
  22. [SerializeField] private Button Titile_Btn;
  23. [SerializeField] private Button Nav_Btn; // 导航按钮
  24. [SerializeField] private GameObject Retract_go; // 收起
  25. [SerializeField] private GameObject Expand_go; // 展开
  26. public GameObject UI_go;
  27. public UnityEvent OnReset = new UnityEvent();
  28. public UnityEvent OnRetract = new UnityEvent();
  29. public UnityEvent OnExpand = new UnityEvent();
  30. private bool isRetract = false;
  31. private bool isStart = true;
  32. void Start()
  33. {
  34. #if UNITY_EDITOR
  35. Test = true;
  36. #endif
  37. Serach_Btn.onClick.AddListener(SerachChange);
  38. Fault_Btn.onClick.AddListener(FaultChange);
  39. Nav_Btn.onClick.AddListener(StartNav);
  40. Titile_Btn.onClick.AddListener(ClickTitle);
  41. //UICallManager.Instance.MachineRoomInit();
  42. //XRRGBCamera.Instance.stopCamera();
  43. Init();
  44. }
  45. private void OnEnable()
  46. {
  47. if (isRetract)
  48. ClickTitle();
  49. if (isStart == false)
  50. {
  51. TopManager.Instance.transform.localPosition = new Vector3(TopManager.Instance.transform.localPosition.x, 260, TopManager.Instance.transform.localPosition.z);
  52. BladeServerManager.Instance.isDaoHang = true;
  53. }
  54. isStart = false;
  55. }
  56. /// <summary>
  57. /// 初始化数据
  58. /// </summary>
  59. private void Init()
  60. {
  61. // 初始化搜索面板
  62. List<MachineParameters> listEquipmentData = UICallMachineRoomData.Instance.GetMachineRoomData("").listEquipmentData;
  63. for (int i = 0; i < listEquipmentData.Count; i++)
  64. {
  65. GameObject go = GameObject.Instantiate(WindowsManager.Instance.GetPrefab(windowType.DaoHang, "SearchPanel_Item"), SearchPanelContent);
  66. SearchPanel_Item item = go.GetComponent<SearchPanel_Item>();
  67. item.Init(listEquipmentData[i]);
  68. go.name = listEquipmentData[i].deviceName;
  69. if (string.IsNullOrEmpty(listEquipmentData[i].deviceName)) go.gameObject.SetActive(false);
  70. }
  71. // 初始化故障面板
  72. //List<AlarmData> ListAlarmData = UICallManager.Instance.GetAlarmData();
  73. //for (int i = 0; i < ListAlarmData.Count; i++)
  74. //{
  75. // GameObject go = Instantiate(InstantiateSystem.Instance.BlueObject.FaultPanel_Item, FaultPanelContent);
  76. // FaultPanel_Item item = go.GetComponent<FaultPanel_Item>();
  77. // item.Init(ListAlarmData[i]);
  78. // go.name = ListAlarmData[i].title;
  79. //}
  80. }
  81. private Color colorBlue = new Color32(25, 107, 255, 255);
  82. private Color colorWhite = new Color32(255, 255, 255, 255);
  83. public void SerachChange()
  84. {
  85. Serach_Text.fontStyle = (FontStyles)FontStyleB;
  86. Fault_Text.fontStyle = (FontStyles)FontStyleN;
  87. Serach_Text.color = colorBlue;
  88. Fault_Text.color = Color.white;
  89. IsSerach = true;
  90. }
  91. public void FaultChange()
  92. {
  93. Serach_Text.fontStyle = (FontStyles)FontStyleN;
  94. Fault_Text.fontStyle = (FontStyles)FontStyleB;
  95. Serach_Text.color = Color.white;
  96. Fault_Text.color = colorBlue;
  97. IsSerach = false;
  98. }
  99. private static MachineParameters mMachineParameter;
  100. public static MachineParameters MachineParameters
  101. {
  102. get => mMachineParameter;
  103. set => mMachineParameter = value;
  104. }
  105. private static AlarmData mAlarmData;
  106. public static AlarmData AlarmData
  107. {
  108. get => mAlarmData;
  109. set => mAlarmData = value;
  110. }
  111. private bool IsSerach = true; // 在Search面板下点击导航
  112. private void StartNav()
  113. {
  114. if (IsSerach)
  115. {
  116. MachineObj obj = UICallMachineRoomData.Instance.QueryMachineObj(MachineParameters.deviceId);
  117. if (obj != null)
  118. {
  119. UICallMachineRoomData.Instance.NavigatorServer(obj);
  120. ClickTitle();
  121. UI_go.SetActive(false);
  122. Retract_go.SetActive(false);
  123. Expand_go.SetActive(true);
  124. }
  125. else
  126. Debug.LogError(" 未查找到设备 " + MachineParameters.deviceId + " " + MachineParameters.deviceName);
  127. }
  128. else
  129. {
  130. MachineObj obj = UICallMachineRoomData.Instance.QueryMachineObj(AlarmData.deviceId);
  131. if (obj != null)
  132. {
  133. UICallMachineRoomData.Instance.NavigatorServer(obj);
  134. UI_go.SetActive(false);
  135. Retract_go.SetActive(false);
  136. Expand_go.SetActive(true);
  137. }
  138. else
  139. Debug.LogError(" 未查找到设备 " + AlarmData.deviceId + " " + AlarmData.deviceName);
  140. }
  141. }
  142. private void ClickTitle()
  143. {
  144. isRetract = !isRetract;
  145. if (isRetract)
  146. OnRetract?.Invoke();
  147. else
  148. OnExpand?.Invoke();
  149. }
  150. public void GoHome()
  151. {
  152. BladeServerManager.Instance.isDaoHang = false;
  153. WayFindingManager.Instance.CloseWayFind();
  154. WindowsManager.Instance.show(WindowConfig.windowType.ProjectMain);
  155. TopManager.Instance.transform.localPosition = new Vector3(TopManager.Instance.transform.localPosition.x, 0, TopManager.Instance.transform.localPosition.z);
  156. }
  157. public void GoDemo()
  158. {
  159. BladeServerManager.Instance.isDaoHang = false;
  160. WayFindingManager.Instance.CloseWayFind();
  161. TopManager.Instance.transform.localPosition = new Vector3(TopManager.Instance.transform.localPosition.x, 0, TopManager.Instance.transform.localPosition.z);
  162. WindowsManager.Instance.show(WindowConfig.windowType.Demo);
  163. }
  164. public void GoRTC()
  165. {
  166. //ShowInfoTipManager.Instance.showTip("暂未开放,敬请期待");
  167. //TimerMgr.Instance.CreateTimer(() => { ShowInfoTipManager.Instance.closeTip(); }, 2f);
  168. BladeServerManager.Instance.isDaoHang = false;
  169. WayFindingManager.Instance.CloseWayFind();
  170. TopManager.Instance.transform.localPosition = new Vector3(TopManager.Instance.transform.localPosition.x, 0, TopManager.Instance.transform.localPosition.z);
  171. WindowsManager.Instance.show(WindowConfig.windowType.RTC);
  172. }
  173. public void GoXunJian()
  174. {
  175. BladeServerManager.Instance.isDaoHang = false;
  176. WayFindingManager.Instance.CloseWayFind();
  177. TopManager.Instance.transform.localPosition = new Vector3(TopManager.Instance.transform.localPosition.x, 0, TopManager.Instance.transform.localPosition.z);
  178. WindowsManager.Instance.show(WindowConfig.windowType.XunJianLB);
  179. }
  180. }