using ProjectBase.UI; using ShotSimulator.Screen; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace ShotSimulator.UI { public class SettingUIView : BaseUIView { public Toggle generalToggle; public Toggle modeToggle; public Transform generalPanel; public Transform modePanel; public Button backButton; protected override void InitUIObjects() { base.InitUIObjects(); generalToggle.onValueChanged.AddListener((isOn) => { OnPanelToggleChanged(generalPanel, isOn); }); modeToggle.onValueChanged.AddListener((isOn) => { OnPanelToggleChanged(modePanel, isOn); }); soundToggle.onValueChanged.AddListener((isOn) => { OnPanelToggleChanged(soundPanel, isOn); }); graphicsToggle.onValueChanged.AddListener((isOn) => { OnPanelToggleChanged(graphicsPanel, isOn); }); bgmSlider.onValueChanged.AddListener(OnBGMSliderValueChanged); soundEffectSlider.onValueChanged.AddListener(OnSoundEffectSliderValueChanged); brightnessSlider.onValueChanged.AddListener(OnBrightnessSliderValueChanged); saturationSlider.onValueChanged.AddListener(OnSaturationSliderValueChanged); tacticalModeToggle.onValueChanged.AddListener(OnTacticalModeToggleValueChanged); for(int i = 0; i < targetToggles.Count; i++) { int index = i; targetToggles[index].onValueChanged.AddListener((isOn) => { if (isOn) OnTargetToggles(index); }); } backButton.onClick.AddListener(OnBackButtonClick); generalToggle.isOn = true; } protected override void OnShowCallBack() { base.OnShowCallBack(); InitSoundPanel(); InitGraphicsPanel(); } private void OnPanelToggleChanged(Transform panel, bool view) { panel.gameObject.SetActive(view); } private void OnBackButtonClick() { UIManager.GetInstance().HideUIView(this); UIManager.GetInstance().ShowUIView("MainScreenUIView"); } #region Mode public Toggle tacticalModeToggle; private void OnTacticalModeToggleValueChanged(bool isOn) { VirtualMouse.GetInstance().TacticalMode = isOn; } #endregion #region SoundPanel public Toggle soundToggle; public Transform soundPanel; public Toggle bgmToggle; public Slider bgmSlider; public Toggle soundEffectToggle; public Slider soundEffectSlider; private void InitSoundPanel() { bgmSlider.SetValueWithoutNotify(SoundManager.GetInstance().GetBGMVolum()); bgmToggle.SetIsOnWithoutNotify(SoundManager.GetInstance().GetBGMVolum() != 0); soundEffectSlider.SetValueWithoutNotify(SoundManager.GetInstance().GetSoundEffectsVolume()); soundEffectToggle.SetIsOnWithoutNotify(SoundManager.GetInstance().GetSoundEffectsVolume() != 0); } private void OnBGMSliderValueChanged(float value) { SoundManager.GetInstance().SetBGMVolume(value); bgmToggle.isOn = value != 0; } private void OnSoundEffectSliderValueChanged(float value) { SoundManager.GetInstance().SetSoundEffectsVolume(value); soundEffectToggle.isOn = value != 0; } #endregion #region Graphics public Toggle graphicsToggle; public Transform graphicsPanel; public Text brightnessText; public Slider brightnessSlider; public Text saturationText; public Slider saturationSlider; public List targetToggles = new List(); private void InitGraphicsPanel() { brightnessSlider.SetValueWithoutNotify(ScreenEffectManager.GetInstance().GetBrightness() * 25); brightnessText.text = brightnessSlider.value.ToString(); saturationSlider.SetValueWithoutNotify(ScreenEffectManager.GetInstance().GetSaturation() * 25); saturationText.text = saturationSlider.value.ToString(); targetToggles[ScreenEffectManager.GetInstance().GetTargetColorIndex()].SetIsOnWithoutNotify(true); } private void OnBrightnessSliderValueChanged(float value) { ScreenEffectManager.GetInstance().SetBrightness(value / 25); brightnessText.text = value.ToString(); } private void OnSaturationSliderValueChanged(float value) { ScreenEffectManager.GetInstance().SetSaturation(value / 25); saturationText.text = value.ToString(); } private void OnTargetToggles(int index) { ScreenEffectManager.GetInstance().SetTargetColorIndex(index); } #endregion } }