Files
taptap2024_GJ_chidouren/Assets/Scripts/Views/SettingPanel.cs
2024-10-16 00:03:41 +08:00

99 lines
3.5 KiB
C#

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);
}
}
}