SettingPanel.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using System;
  6. using SC.XR.Unity;
  7. using Blue;
  8. public class SettingPanel : AbstractController
  9. {
  10. public Toggle MinMap;
  11. public Toggle LuJIng;
  12. public Transform ChooseLine;
  13. public Toggle LineItem;
  14. public Transform LineItemParent;
  15. public Button SaveData;
  16. [SerializeField, Tooltip("小地图信息")]
  17. private MinMap m_MinMap;
  18. [SerializeField, Tooltip("路径控制器")]
  19. private RouteCtr m_RouteCtr;
  20. private List<Toggle> Lines;
  21. private void Awake()
  22. {
  23. Lines = new List<Toggle>();
  24. SaveData.onClick.AddListener(OnClickSaveData);
  25. MinMap.onValueChanged.AddListener(OnMinMapValueChange);
  26. LuJIng.onValueChanged.AddListener(OnLuJIngValueChange);
  27. }
  28. public void Init()
  29. {
  30. CreateLines();
  31. MinMap.isOn = true;
  32. m_MinMap.gameObject.SetActive(true);
  33. LuJIng.isOn = true;
  34. if (Lines.Count > 0)
  35. {
  36. Lines[0].isOn = true;
  37. }
  38. gameObject.SetActive(false);
  39. }
  40. private void OnMinMapValueChange(bool ison)
  41. {
  42. m_MinMap.gameObject.SetActive(ison);
  43. }
  44. private void OnLuJIngValueChange(bool ison)
  45. {
  46. m_RouteCtr.gameObject.SetActive(ison);
  47. for (int i = 0; i < Lines.Count; i++)
  48. {
  49. Lines[i].interactable = ison;
  50. }
  51. }
  52. private void CreateLines()
  53. {
  54. var lines = m_RouteCtr.List_route;
  55. for (int i = 0; i < lines.Count; i++)
  56. {
  57. Toggle obj = Instantiate(LineItem, LineItemParent);
  58. obj.isOn = false;
  59. obj.transform.Find("Label").GetComponent<Text>().text = lines[i].name;
  60. var item = obj.gameObject.AddComponent<LuJingItem>();
  61. item.OnToggleSelect += OnCLickToggle;
  62. obj.gameObject.SetActive(true);
  63. Lines.Add(obj);
  64. }
  65. }
  66. private void OnCLickToggle(int index, bool ison)
  67. {
  68. m_RouteCtr.SettingLuJing(index, ison);
  69. m_MinMap.SetRoute(index, ison);
  70. }
  71. private void OnClickSaveData()
  72. {
  73. this.SendCommand(new MinMapGetSetCommand(m_MinMap.gameObject.activeSelf ? 1 : 0));
  74. DataManager.Instance.SaveSpoits();
  75. DataManager.Instance.IsSavedData = true;
  76. }
  77. }