DeviceView.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. /* 设备界面 */
  7. public class DeviceView : JCUnityLib.ViewBase, MenuBackInterface
  8. {
  9. GameObject bowOptions;
  10. [SerializeField] GameObject btnConnectBow;
  11. public static DeviceView ins;
  12. public Action action_OnClickGyr;
  13. public Action action_OnClickMag;
  14. void Start()
  15. {
  16. ins = this;
  17. PersistenHandler.ins?.menuBackCtr.views.Add(this);
  18. btnConnectBow.GetComponent<Button>().onClick.AddListener(delegate() {
  19. if (HomeView.ShowProminentBeforeConnectBLE()) return;
  20. BluetoothAim.ins.DoConnect();
  21. });
  22. bowOptions = this.transform.Find("ItemInfo/BowOptions").gameObject;
  23. //初始化弓的校准按钮
  24. Button[] bowOptionBtns = bowOptions.GetComponentsInChildren<Button>();
  25. for (int i = 0; i < bowOptionBtns.Length; i++)
  26. {
  27. int optionID = i;
  28. bowOptionBtns[i].onClick.AddListener(delegate() {
  29. AudioMgr.ins.PlayBtn();
  30. switch (optionID)
  31. {
  32. case 0:
  33. DeviceCalibrateView.Create(DeviceCalibrateItem.Gyr);
  34. action_OnClickGyr?.Invoke();
  35. break;
  36. case 1:
  37. DeviceCalibrateView.Create(DeviceCalibrateItem.Mag);
  38. action_OnClickMag?.Invoke();
  39. break;
  40. }
  41. });
  42. }
  43. }
  44. void OnDestroy()
  45. {
  46. if (ins == this) ins = null;
  47. PersistenHandler.ins?.menuBackCtr.views.Remove(this);
  48. }
  49. void Update()
  50. {
  51. UpdateBtnForConnect();
  52. }
  53. BluetoothStatusEnum bowStatus;
  54. void UpdateBtnForConnect() {
  55. if (BluetoothAim.ins && bowStatus != BluetoothAim.ins.status) {
  56. bowStatus = BluetoothAim.ins.status;
  57. (int textID, Color color) = BluetoothStatus.GetStatusInfo(BluetoothAim.ins.status);
  58. btnConnectBow.GetComponentInChildren<TextAutoLanguage>().SetText(textID);
  59. btnConnectBow.GetComponentInChildren<Text>().color = color;
  60. btnConnectBow.transform.Find("Check").gameObject.SetActive(bowStatus == BluetoothStatusEnum.ConnectSuccess);
  61. }
  62. }
  63. public bool OnMenuBack() {
  64. ViewMgr.Instance.DestroyView<DeviceView>();
  65. return true;
  66. }
  67. public void OnClick_Back() {
  68. AudioMgr.ins.PlayBtn();
  69. ViewMgr.Instance.DestroyView<DeviceView>();
  70. }
  71. }