using System; using System.AchieveSystem; using System.Collections.Generic; using Framework.Asset; using Framework.Audio; using Framework.Save; using Game; using Game.Component; using UnityEngine; using UnityEngine.UI; using IcecreamView; using TMPro; namespace Views { public class SettingPanel : IcecreamView.IC_AbstractModule { [SerializeField] private Button _backBtn; [SerializeField] private Button _quitBtn; [SerializeField] private Button _aboutBtn; [SerializeField] private GameSlider _bgmSlider; [SerializeField] private GameSlider _seSlider; [SerializeField] private GameSlider _shakeSlider; [SerializeField] private TMP_Text _version; [SerializeField] private Toggle _shakeToggle; [SerializeField] private TMP_Text _shakeToggleTip; public override void OnInitView() { this._backBtn.onClick.AddListener(this.ViewConnector.CloseView); this._quitBtn.onClick.AddListener(() => { this.ViewConnector.CloseView(); GameManager.Instance.ExitGame(); }); this._aboutBtn.onClick.AddListener(OnClick_About); this._bgmSlider.OnValueChange += BGMChange; this._seSlider.OnValueChange += SEChange; this._shakeToggle.isOn = Account.Instance.AccountSystemData.ShakeValue > 0; ShakeChange(this._shakeToggle.isOn); this._shakeToggle.onValueChanged.AddListener(ShakeChange); } private void ShakeChange(bool hasActive) { Account.Instance.AccountSystemData.ShakeValue = hasActive ? 1 : 0; _shakeToggleTip.text = hasActive ? "震动开启" : "震动关闭"; if (hasActive) { GameManager.Instance.Vibrator(VibratorScale.Normal); } } private void SEChange(float obj) { AudioManager.Instance.SoundValue = obj * 0.01f; } private void BGMChange(float obj) { AudioManager.Instance.MusicValue = obj * 0.01f; } private void OnClick_About() { // if (GameGlobalConfig.Instance.Channel == GameChannel.Taptap) // { // LaunchAppUtils.ToTapTapTargetApp (); // } // else // { // LaunchAppUtils.ToCommonTargetApp (); // } AchievementMgr.Instance.Push(AchievementCode.None); Debug.Log(AchievementMgr.Instance.GetAchieveCount((int)AchievementCode.None)); } public override void OnOpenView(IC_ViewData parameters) { this._bgmSlider.MaxValue = 100; this._seSlider.MaxValue = 100; // this._shakeSlider.MaxValue = 100; this._bgmSlider.ToValue(Account.Instance.AccountSystemData.BGMValue * 100, 0.35f); this._seSlider.ToValue(Account.Instance.AccountSystemData.SEValue * 100, 0.35f); // this._shakeSlider.ToValue(Account.Instance.AccountSystemData.ShakeValue * 100, 0.35f); var assetVersion = AssetManager.GetCurVersion(); this._version.text = string.Format(this._version.text, Application.version + $".[{assetVersion}.{(int)GameGlobalConfig.Instance.Channel}]"); } public override void OnCloseView() { Account.Instance.Save(SaveData.System); } } }