using ProjectBase.UI; using ShotSimulator.Screen; using ShotSimulator.Train; using ShotSimulator.Train.Info; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace ShotSimulator.UI { public class TrainTaskInfoUIView : BaseUIView { public Toggle trainTaskToggle; public Toggle settingToggle; public Button rankingButton; public Transform trainTaskPanel; public Transform settingPanel; private List m_TrainTaskItems = new List(); [SerializeField] private Toggle accuracyToggle; [SerializeField] private Toggle cognitionToggle; [SerializeField] private Toggle reactionToggle; [SerializeField] private Toggle perceiveToggle; [SerializeField] private Toggle speedToggle; [SerializeField] private Toggle trackToggle; [SerializeField] private Transform m_TrainTaskItemConetnt; [SerializeField] private Button backButton; protected override void InitUIObjects() { base.InitUIObjects(); backButton.onClick.AddListener(OnBackButtonClick); trainTaskToggle.onValueChanged.AddListener((isOn) => { OnPanelToggleChanged(trainTaskPanel, isOn); }); settingToggle.onValueChanged.AddListener((isOn) => { OnPanelToggleChanged(settingPanel, isOn); }); accuracyToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnTrainTypeChanged(TrainType.Accuracy); }); cognitionToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnTrainTypeChanged(TrainType.Cognition); }); reactionToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnTrainTypeChanged(TrainType.Reaction); }); perceiveToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnTrainTypeChanged(TrainType.Perceive); }); speedToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnTrainTypeChanged(TrainType.Speed); }); trackToggle.onValueChanged.AddListener((isOn) => { if (isOn) OnTrainTypeChanged(TrainType.Track); }); accuracyToggle.isOn = true; tacticalModeToggle.onValueChanged.AddListener(OnTacticalModeToggleValueChanged); for (int i = 0; i < targetToggles.Count; i++) { int index = i; targetToggles[index].onValueChanged.AddListener((isOn) => { if (isOn) OnTargetToggles(index); }); } rankingButton.onClick.AddListener(OnRankingButtonClick); } protected override void OnShowCallBack() { base.OnShowCallBack(); trainTaskToggle.isOn = true; targetToggles[ScreenEffectManager.GetInstance().GetTargetColorIndex()].SetIsOnWithoutNotify(true); tacticalModeToggle.SetIsOnWithoutNotify(VirtualMouse.GetInstance().TacticalMode); } private void OnTrainTypeChanged(TrainType type) { foreach (var item in m_TrainTaskItems) { GameObject.Destroy(item.gameObject); } m_TrainTaskItems.Clear(); foreach (var info in TrainTaskLoader.GetInstance().TrainInfos) { if (info.trainType == type) { GameObject obj = GameObject.Instantiate(Resources.Load("Prefabs/UI/TrainTaskItem")); TrainTaskItem item = obj.GetComponent(); item.InitTrainTaskItem(info); obj.transform.SetParent(m_TrainTaskItemConetnt, false); obj.transform.localScale = Vector3.one; m_TrainTaskItems.Add(item); } } } private void OnTargetToggles(int index) { ScreenEffectManager.GetInstance().SetTargetColorIndex(index); } private void OnBackButtonClick() { //UIManager.GetInstance().HideUIView(this); //UIManager.GetInstance().ShowUIView("MainScreenUIView"); UnityEngine.SceneManagement.SceneManager.LoadScene("Home", UnityEngine.SceneManagement.LoadSceneMode.Single); } private void OnPanelToggleChanged(Transform panel, bool view) { panel.gameObject.SetActive(view); } private void OnRankingButtonClick() { UIManager.GetInstance().HideUIView(this); UIManager.GetInstance().ShowUIView("RankingUIView"); } #region Setting public Toggle tacticalModeToggle; public List targetToggles = new List(); private void OnTacticalModeToggleValueChanged(bool isOn) { VirtualMouse.GetInstance().TacticalMode = isOn; if (isOn) { UIManager.GetInstance().ShowUIView("TacticalModeSettingUIView"); } } #endregion } }