SmartBowManager.cs 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. //using UnityEngine.UIElements;
  6. public class SmartBowManager : MonoBehaviour
  7. {
  8. [SerializeField] private Sprite Tick_texture;
  9. [SerializeField] private Sprite Cross_texture;
  10. [SerializeField] private Button SmartBow_btn;
  11. [SerializeField] private Button Connect_btn;
  12. [SerializeField] private Button CalibrateGyr_btn;
  13. [SerializeField] private Button CalibrateMag_btn;
  14. [SerializeField] private Image SmartBowStatus_img;
  15. [SerializeField] private Image ConnectionStatus_img;
  16. [SerializeField] private Image GyrStatus_img;
  17. [SerializeField] private Image MagStatus_img;
  18. [SerializeField] private GameObject SubMenuContainer;
  19. //[SerializeField] private Text testInfo;
  20. private bool bSmartBowMenuActive;
  21. //private int BowConnectionStatus = 0; // 0 - not connected, 1 - connecting, 2 - connected
  22. //private bool bCalibratingGyr = false;
  23. //private bool bCalibratingMag = false;
  24. //public delegate void SmartBowConnectionLostDelegate();
  25. //public event SmartBowConnectionLostDelegate OnConnectionLost;
  26. void Awake()
  27. {
  28. }
  29. // Start is called before the first frame update
  30. void Start()
  31. {
  32. //SmartBowHelper.GetInstance().OnBluetoothError += BluetoothError;
  33. //SmartBow_btn.onClick.AddListener(ToggleSmartBowMenu);
  34. //CalibrateGyr_btn.onClick.AddListener(CalibrateGyr);
  35. //CalibrateMag_btn.onClick.AddListener(CalibrateMag);
  36. //SmartBowHelper.GetInstance().OnBluetoothStatusChanged += OnBluetoothStatusChanged;
  37. //SmartBowHelper.GetInstance().OnBluetoothModuleInited += OnSmartBowBluetoothInit;
  38. //SmartBowHelper.GetInstance().OnFunctionKeyPress += ResetAim;
  39. //ToggleSmartBowMenu(false);
  40. //UpdateBowStatus();
  41. }
  42. // Update is called once per frame
  43. void Update()
  44. {
  45. //if (bCalibratingGyr && SmartBowHelper.GetInstance().IsGyrCompleted())
  46. //{
  47. // bCalibratingGyr = false;
  48. // UpdateBowStatus();
  49. //}
  50. //if (bCalibratingMag && SmartBowHelper.GetInstance().IsMagCompleted())
  51. //{
  52. // bCalibratingMag = false;
  53. // UpdateBowStatus();
  54. //}
  55. }
  56. //private void OnBluetoothStatusChanged(BluetoothStatusEnum oldStatus, BluetoothStatusEnum newStatus)
  57. //{
  58. // if (newStatus == BluetoothStatusEnum.Connected)
  59. // {
  60. // BowConnectionStatus = 2;
  61. // }
  62. // else if (newStatus == BluetoothStatusEnum.Connecting)
  63. // {
  64. // BowConnectionStatus = 1;
  65. // }
  66. // else // None
  67. // {
  68. // BowConnectionStatus = 0;
  69. // if (oldStatus == BluetoothStatusEnum.Connected)
  70. // {
  71. // OnConnectionLost.Invoke();
  72. // if (!bSmartBowMenuActive)
  73. // {
  74. // ToggleSmartBowMenu(true);
  75. // }
  76. // }
  77. // }
  78. // UpdateBowStatus();
  79. //}
  80. //private void ConnectBow()
  81. //{
  82. // SmartBowHelper.GetInstance().Connect();
  83. //}
  84. //private void DisconnectBow()
  85. //{
  86. // SmartBowHelper.GetInstance().Disconnect();
  87. //}
  88. //private void CalibrateGyr()
  89. //{
  90. // SmartBowHelper.GetInstance().StartGyrCalibration();
  91. // bCalibratingGyr = true;
  92. // UpdateBowStatus();
  93. //}
  94. //private void CalibrateMag()
  95. //{
  96. // SmartBowHelper.GetInstance().StartMagCalibration();
  97. // bCalibratingMag = true;
  98. // UpdateBowStatus();
  99. //}
  100. //private void OnSmartBowBluetoothInit()
  101. //{
  102. // SmartBowHelper.GetInstance().StartRotationSensor();
  103. // SmartBowHelper.GetInstance().StartShootingSensor();
  104. // UpdateBowStatus();
  105. //}
  106. private void ToggleSmartBowMenu(bool b)
  107. {
  108. bSmartBowMenuActive = b;
  109. SubMenuContainer.SetActive(bSmartBowMenuActive);
  110. //Connect_btn.gameObject.SetActive(bSmartBowMenuActive);
  111. //CalibrateGyr_btn.gameObject.SetActive(bSmartBowMenuActive);
  112. //CalibrateMag_btn.gameObject.SetActive(bSmartBowMenuActive);
  113. //ConnectionStatus_img.gameObject.SetActive(bSmartBowMenuActive);
  114. //GyrStatus_img.gameObject.SetActive(bSmartBowMenuActive);
  115. //MagStatus_img.gameObject.SetActive(bSmartBowMenuActive);
  116. }
  117. private void ToggleSmartBowMenu()
  118. {
  119. bSmartBowMenuActive = !bSmartBowMenuActive;
  120. SubMenuContainer.SetActive(bSmartBowMenuActive);
  121. //Connect_btn.gameObject.SetActive(bSmartBowMenuActive);
  122. //CalibrateGyr_btn.gameObject.SetActive(bSmartBowMenuActive);
  123. //CalibrateMag_btn.gameObject.SetActive(bSmartBowMenuActive);
  124. //ConnectionStatus_img.gameObject.SetActive(bSmartBowMenuActive);
  125. //GyrStatus_img.gameObject.SetActive(bSmartBowMenuActive);
  126. //MagStatus_img.gameObject.SetActive(bSmartBowMenuActive);
  127. }
  128. //private void UpdateBowStatus()
  129. //{
  130. // Connect_btn.onClick.RemoveAllListeners();
  131. // if (BowConnectionStatus == 0)
  132. // {
  133. // // update connect button
  134. // Connect_btn.interactable = true;
  135. // Connect_btn.gameObject.GetComponentInChildren<Text>().text = "Connect";
  136. // Connect_btn.onClick.AddListener(ConnectBow);
  137. // ConnectionStatus_img.sprite = Cross_texture;
  138. // // update gyr button
  139. // CalibrateGyr_btn.interactable = false;
  140. // CalibrateGyr_btn.gameObject.GetComponentInChildren<Text>().text = "Calibrate Gyr";
  141. // GyrStatus_img.sprite = Cross_texture;
  142. // // update mag button
  143. // CalibrateMag_btn.interactable = false;
  144. // CalibrateMag_btn.gameObject.GetComponentInChildren<Text>().text = "Calibrate Mag";
  145. // ConnectionStatus_img.sprite = Cross_texture;
  146. // MagStatus_img.sprite = Cross_texture;
  147. // SmartBowStatus_img.sprite = Cross_texture;
  148. // }
  149. // else if (BowConnectionStatus == 1)
  150. // {
  151. // // update connect button
  152. // Connect_btn.interactable = false;
  153. // Connect_btn.gameObject.GetComponentInChildren<Text>().text = "Connecting";
  154. // ConnectionStatus_img.sprite = Cross_texture;
  155. // // update gyr button
  156. // CalibrateGyr_btn.interactable = false;
  157. // CalibrateGyr_btn.gameObject.GetComponentInChildren<Text>().text = "Calibrate Gyr";
  158. // GyrStatus_img.sprite = Cross_texture;
  159. // // update mag button
  160. // CalibrateMag_btn.interactable = false;
  161. // CalibrateMag_btn.gameObject.GetComponentInChildren<Text>().text = "Calibrate Mag";
  162. // ConnectionStatus_img.sprite = Cross_texture;
  163. // MagStatus_img.sprite = Cross_texture;
  164. // SmartBowStatus_img.sprite = Cross_texture;
  165. // }
  166. // else // BowConnectionStatus == 2
  167. // {
  168. // bool bGyrCalibrated = false;
  169. // bool bMagCalibrated = false;
  170. // // update connect button
  171. // Connect_btn.interactable = true;
  172. // Connect_btn.gameObject.GetComponentInChildren<Text>().text = "Disconnect";
  173. // Connect_btn.onClick.AddListener(DisconnectBow);
  174. // ConnectionStatus_img.sprite = Tick_texture;
  175. // // update gyr
  176. // if (bCalibratingGyr)
  177. // {
  178. // CalibrateGyr_btn.interactable = false;
  179. // CalibrateGyr_btn.gameObject.GetComponentInChildren<Text>().text = "Calibrating Gyr...";
  180. // GyrStatus_img.sprite = Cross_texture;
  181. // }
  182. // else
  183. // {
  184. // CalibrateGyr_btn.interactable = true;
  185. // CalibrateGyr_btn.gameObject.GetComponentInChildren<Text>().text = "Calibrate Gyr";
  186. // GyrStatus_img.sprite = SmartBowHelper.GetInstance().IsGyrCompleted() ? Tick_texture : Cross_texture;
  187. // bGyrCalibrated = SmartBowHelper.GetInstance().IsGyrCompleted();
  188. // }
  189. // // update mag
  190. // if (bCalibratingMag)
  191. // {
  192. // CalibrateMag_btn.interactable = false;
  193. // CalibrateMag_btn.gameObject.GetComponentInChildren<Text>().text = "Calibrating Mag...";
  194. // MagStatus_img.sprite = Cross_texture;
  195. // }
  196. // else
  197. // {
  198. // CalibrateMag_btn.interactable = true;
  199. // CalibrateMag_btn.gameObject.GetComponentInChildren<Text>().text = "Calibrate Mag";
  200. // MagStatus_img.sprite = SmartBowHelper.GetInstance().IsMagCompleted() ? Tick_texture : Cross_texture;
  201. // bMagCalibrated = SmartBowHelper.GetInstance().IsMagCompleted();
  202. // }
  203. // SmartBowStatus_img.sprite = (bGyrCalibrated && bMagCalibrated) ? Tick_texture : Cross_texture;
  204. // }
  205. //}
  206. //public bool IsSmartBowConnected()
  207. //{
  208. // return (BowConnectionStatus == 2);
  209. //}
  210. public void ResetAim()
  211. {
  212. JCFruitMaster.ins.ResetAim();
  213. }
  214. //private void BluetoothError(BluetoothError error, string message)
  215. //{
  216. // //testInfo.text = message;
  217. //}
  218. }