DeviceView1.cs 2.4 KB

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