BluetoothHolder.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. /*蓝牙持有者,算是蓝牙模块的管理者,内含调试界面 */
  6. public class BluetoothHolder : MonoBehaviour
  7. {
  8. bool debug = false;
  9. GameObject magEllipse;
  10. HashSet<Object> magEllipseViewers = new HashSet<Object>();
  11. public static BluetoothHolder ins;
  12. public static void Init()
  13. {
  14. if (!BluetoothHolder.ins) {
  15. GameObject bluetoothHolder = Resources.Load<GameObject>("Prefabs/BluetoothHolder");
  16. GameObject.Instantiate(bluetoothHolder);
  17. }
  18. }
  19. void Awake()
  20. {
  21. if (ins)
  22. {
  23. Destroy(this.gameObject);
  24. } else {
  25. ins = this;
  26. DontDestroyOnLoad(this.gameObject);
  27. }
  28. }
  29. void Start() {
  30. magEllipse = this.transform.Find("test-ellipse").gameObject;
  31. if (!debug) {
  32. this.transform.Find("CanvasForOpenDebug").gameObject.SetActive(false);
  33. }
  34. CloseDebug();
  35. }
  36. public void ShowMagEllipse(Object viewer)
  37. {
  38. magEllipseViewers.Add(viewer);
  39. if (magEllipseViewers.Count == 1) magEllipse.SetActive(true);
  40. }
  41. public void HideMagEllipse(Object viewer)
  42. {
  43. magEllipseViewers.Remove(viewer);
  44. if (magEllipseViewers.Count == 0) magEllipse.SetActive(false);
  45. }
  46. public void openDebug() {
  47. ShowMagEllipse(this);
  48. this.transform.Find("Canvas").gameObject.SetActive(true);
  49. this.transform.Find("Objects").gameObject.SetActive(true);
  50. }
  51. public void CloseDebug() {
  52. HideMagEllipse(this);
  53. this.transform.Find("Canvas").gameObject.SetActive(false);
  54. this.transform.Find("Objects").gameObject.SetActive(false);
  55. }
  56. public void ClearCalibrateGuide() {
  57. UserSettings.ins.deviceCalibrateGuideFinish = false;
  58. UserSettings.ins.Save();
  59. }
  60. public void SetArrowWeight(InputField inputField) {
  61. string text = inputField.text;
  62. CommonConfig.arrowWeight = float.Parse(text);
  63. }
  64. }