TrainTaskInfoUIView.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. using ProjectBase.UI;
  2. using ShotSimulator.Screen;
  3. using ShotSimulator.Train;
  4. using ShotSimulator.Train.Info;
  5. using System.Collections;
  6. using System.Collections.Generic;
  7. using UnityEngine;
  8. using UnityEngine.UI;
  9. namespace ShotSimulator.UI
  10. {
  11. public class TrainTaskInfoUIView : BaseUIView
  12. {
  13. public Toggle trainTaskToggle;
  14. public Toggle settingToggle;
  15. public Button rankingButton;
  16. public Transform trainTaskPanel;
  17. public Transform settingPanel;
  18. private List<TrainTaskItem> m_TrainTaskItems = new List<TrainTaskItem>();
  19. [SerializeField]
  20. private Toggle accuracyToggle;
  21. [SerializeField]
  22. private Toggle cognitionToggle;
  23. [SerializeField]
  24. private Toggle reactionToggle;
  25. [SerializeField]
  26. private Toggle perceiveToggle;
  27. [SerializeField]
  28. private Toggle speedToggle;
  29. [SerializeField]
  30. private Toggle trackToggle;
  31. [SerializeField]
  32. private Transform m_TrainTaskItemConetnt;
  33. [SerializeField]
  34. private Button backButton;
  35. protected override void InitUIObjects()
  36. {
  37. base.InitUIObjects();
  38. backButton.onClick.AddListener(OnBackButtonClick);
  39. trainTaskToggle.onValueChanged.AddListener((isOn) => { OnPanelToggleChanged(trainTaskPanel, isOn); });
  40. settingToggle.onValueChanged.AddListener((isOn) => { OnPanelToggleChanged(settingPanel, isOn); });
  41. accuracyToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnTrainTypeChanged(TrainType.Accuracy); });
  42. cognitionToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnTrainTypeChanged(TrainType.Cognition); });
  43. reactionToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnTrainTypeChanged(TrainType.Reaction); });
  44. perceiveToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnTrainTypeChanged(TrainType.Perceive); });
  45. speedToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnTrainTypeChanged(TrainType.Speed); });
  46. trackToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnTrainTypeChanged(TrainType.Track); });
  47. accuracyToggle.isOn = true;
  48. tacticalModeToggle.onValueChanged.AddListener(OnTacticalModeToggleValueChanged);
  49. for (int i = 0; i < targetToggles.Count; i++)
  50. {
  51. int index = i;
  52. targetToggles[index].onValueChanged.AddListener((isOn) => { if (isOn) OnTargetToggles(index); });
  53. }
  54. rankingButton.onClick.AddListener(OnRankingButtonClick);
  55. }
  56. protected override void OnShowCallBack()
  57. {
  58. base.OnShowCallBack();
  59. trainTaskToggle.isOn = true;
  60. targetToggles[ScreenEffectManager.GetInstance().GetTargetColorIndex()].SetIsOnWithoutNotify(true);
  61. tacticalModeToggle.SetIsOnWithoutNotify(VirtualMouse.GetInstance().TacticalMode);
  62. }
  63. private void OnTrainTypeChanged(TrainType type)
  64. {
  65. foreach (var item in m_TrainTaskItems)
  66. {
  67. GameObject.Destroy(item.gameObject);
  68. }
  69. m_TrainTaskItems.Clear();
  70. foreach (var info in TrainTaskLoader.GetInstance().TrainInfos)
  71. {
  72. if (info.trainType == type)
  73. {
  74. GameObject obj = GameObject.Instantiate(Resources.Load<GameObject>("Prefabs/UI/TrainTaskItem"));
  75. TrainTaskItem item = obj.GetComponent<TrainTaskItem>();
  76. item.InitTrainTaskItem(info);
  77. obj.transform.SetParent(m_TrainTaskItemConetnt, false);
  78. obj.transform.localScale = Vector3.one;
  79. m_TrainTaskItems.Add(item);
  80. }
  81. }
  82. }
  83. private void OnTargetToggles(int index)
  84. {
  85. ScreenEffectManager.GetInstance().SetTargetColorIndex(index);
  86. }
  87. private void OnBackButtonClick()
  88. {
  89. //UIManager.GetInstance().HideUIView(this);
  90. //UIManager.GetInstance().ShowUIView("MainScreenUIView");
  91. UnityEngine.SceneManagement.SceneManager.LoadScene("Home", UnityEngine.SceneManagement.LoadSceneMode.Single);
  92. }
  93. private void OnPanelToggleChanged(Transform panel, bool view)
  94. {
  95. panel.gameObject.SetActive(view);
  96. }
  97. private void OnRankingButtonClick()
  98. {
  99. UIManager.GetInstance().HideUIView(this);
  100. UIManager.GetInstance().ShowUIView("RankingUIView");
  101. }
  102. #region Setting
  103. public Toggle tacticalModeToggle;
  104. public List<Toggle> targetToggles = new List<Toggle>();
  105. private void OnTacticalModeToggleValueChanged(bool isOn)
  106. {
  107. VirtualMouse.GetInstance().TacticalMode = isOn;
  108. if (isOn)
  109. {
  110. UIManager.GetInstance().ShowUIView("TacticalModeSettingUIView");
  111. }
  112. }
  113. #endregion
  114. }
  115. }