SettingUIView.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. using ProjectBase.UI;
  2. using ShotSimulator.Screen;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. using UnityEngine;
  6. using UnityEngine.UI;
  7. namespace ShotSimulator.UI
  8. {
  9. public class SettingUIView : BaseUIView
  10. {
  11. public Toggle generalToggle;
  12. public Toggle modeToggle;
  13. public Transform generalPanel;
  14. public Transform modePanel;
  15. public Button backButton;
  16. protected override void InitUIObjects()
  17. {
  18. base.InitUIObjects();
  19. generalToggle.onValueChanged.AddListener((isOn) => { OnPanelToggleChanged(generalPanel, isOn); });
  20. modeToggle.onValueChanged.AddListener((isOn) => { OnPanelToggleChanged(modePanel, isOn); });
  21. soundToggle.onValueChanged.AddListener((isOn) => { OnPanelToggleChanged(soundPanel, isOn); });
  22. graphicsToggle.onValueChanged.AddListener((isOn) => { OnPanelToggleChanged(graphicsPanel, isOn); });
  23. bgmSlider.onValueChanged.AddListener(OnBGMSliderValueChanged);
  24. soundEffectSlider.onValueChanged.AddListener(OnSoundEffectSliderValueChanged);
  25. brightnessSlider.onValueChanged.AddListener(OnBrightnessSliderValueChanged);
  26. saturationSlider.onValueChanged.AddListener(OnSaturationSliderValueChanged);
  27. tacticalModeToggle.onValueChanged.AddListener(OnTacticalModeToggleValueChanged);
  28. for(int i = 0; i < targetToggles.Count; i++)
  29. {
  30. int index = i;
  31. targetToggles[index].onValueChanged.AddListener((isOn) => { if (isOn) OnTargetToggles(index); });
  32. }
  33. backButton.onClick.AddListener(OnBackButtonClick);
  34. generalToggle.isOn = true;
  35. }
  36. protected override void OnShowCallBack()
  37. {
  38. base.OnShowCallBack();
  39. InitSoundPanel();
  40. InitGraphicsPanel();
  41. }
  42. private void OnPanelToggleChanged(Transform panel, bool view)
  43. {
  44. panel.gameObject.SetActive(view);
  45. }
  46. private void OnBackButtonClick()
  47. {
  48. UIManager.GetInstance().HideUIView(this);
  49. UIManager.GetInstance().ShowUIView("MainScreenUIView");
  50. }
  51. #region Mode
  52. public Toggle tacticalModeToggle;
  53. private void OnTacticalModeToggleValueChanged(bool isOn)
  54. {
  55. VirtualMouse.GetInstance().TacticalMode = isOn;
  56. }
  57. #endregion
  58. #region SoundPanel
  59. public Toggle soundToggle;
  60. public Transform soundPanel;
  61. public Toggle bgmToggle;
  62. public Slider bgmSlider;
  63. public Toggle soundEffectToggle;
  64. public Slider soundEffectSlider;
  65. private void InitSoundPanel()
  66. {
  67. bgmSlider.SetValueWithoutNotify(SoundManager.GetInstance().GetBGMVolum());
  68. bgmToggle.SetIsOnWithoutNotify(SoundManager.GetInstance().GetBGMVolum() != 0);
  69. soundEffectSlider.SetValueWithoutNotify(SoundManager.GetInstance().GetSoundEffectsVolume());
  70. soundEffectToggle.SetIsOnWithoutNotify(SoundManager.GetInstance().GetSoundEffectsVolume() != 0);
  71. }
  72. private void OnBGMSliderValueChanged(float value)
  73. {
  74. SoundManager.GetInstance().SetBGMVolume(value);
  75. bgmToggle.isOn = value != 0;
  76. }
  77. private void OnSoundEffectSliderValueChanged(float value)
  78. {
  79. SoundManager.GetInstance().SetSoundEffectsVolume(value);
  80. soundEffectToggle.isOn = value != 0;
  81. }
  82. #endregion
  83. #region Graphics
  84. public Toggle graphicsToggle;
  85. public Transform graphicsPanel;
  86. public Text brightnessText;
  87. public Slider brightnessSlider;
  88. public Text saturationText;
  89. public Slider saturationSlider;
  90. public List<Toggle> targetToggles = new List<Toggle>();
  91. private void InitGraphicsPanel()
  92. {
  93. brightnessSlider.SetValueWithoutNotify(ScreenEffectManager.GetInstance().GetBrightness() * 25);
  94. brightnessText.text = brightnessSlider.value.ToString();
  95. saturationSlider.SetValueWithoutNotify(ScreenEffectManager.GetInstance().GetSaturation() * 25);
  96. saturationText.text = saturationSlider.value.ToString();
  97. targetToggles[ScreenEffectManager.GetInstance().GetTargetColorIndex()].SetIsOnWithoutNotify(true);
  98. }
  99. private void OnBrightnessSliderValueChanged(float value)
  100. {
  101. ScreenEffectManager.GetInstance().SetBrightness(value / 25);
  102. brightnessText.text = value.ToString();
  103. }
  104. private void OnSaturationSliderValueChanged(float value)
  105. {
  106. ScreenEffectManager.GetInstance().SetSaturation(value / 25);
  107. saturationText.text = value.ToString();
  108. }
  109. private void OnTargetToggles(int index)
  110. {
  111. ScreenEffectManager.GetInstance().SetTargetColorIndex(index);
  112. }
  113. #endregion
  114. }
  115. }