快速上手
以下内容旨在快速在您的项目中使用 winS.Unity.Modules.Settings。
创建设置模块
您可以通过定义一个继承自winS.Unity.Modules.Settings.SettingsModuleBase的类型来创建设置模块:
SettingsModule.cs
using winS.Unity.Modules.Settings;
public class SettingsModule : SettingsModuleBase
{
}
此类型将由 winS for Unity 创建并管理,在运行时,您可以通过winS.Unity.Runtime.GetModule来获取 SettingsModule。
创建设置
现在我们可以根据项目的具体需求来创建设置,在本例中,我们创建一个常见的声音设置 AudioSettings:
AudioSettings.cs
using winS.Unity.Modules.Settings;
public class AudioSettings : ISettings
{
public SettingValue<float> volumeGlobal = new SettingValue<float>(1f);
public SettingValue<float> volumeMusic = new SettingValue<float>(1f);
public SettingValue<float> volumeSound = new SettingValue<float>(1f);
public SettingValue<float> volumeVoice = new SettingValue<float>(1f);
public SettingValue<float> volumeAmbient = new SettingValue<float>(1f);
}
上述代码中我们使用SettingValue<float>定义了多个音量设置值。SettingValue是此扩展包内提供的类型。它允许您:
- 监听值的改变;
- 为值设置默认值;
- 将值重置为默认值;
使用设置模块
以下代码演示了如何使用设置模块来获取、保存AudioSettings:
using UnityEngine;
public class Example_Use : MonoBehaviour
{
private AudioSettings audioSettings;
private void Start()
{
SettingsModule settingsModule = winS.Unity.Runtime.GetModule<SettingsModule>();
audioSettings = settingsModule.GetSettings<AudioSettings>();//获取 AudioSettings
audioSettings.volumeMusic.onValueChanged += OnMusicVolumeChanged;//监听值改变事件
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
SaveAudioSettings();
}
}
private async void SaveAudioSettings()
{
SettingsModule settingsModule = winS.Unity.Runtime.GetModule<SettingsModule>();
await settingsModule.Save(audioSettings);//保存 AudioSettings
Debug.Log("AudioSettings Saved.");
}
private void OnMusicVolumeChanged(float newValue)
{
Debug.Log($"New Music Volume={newValue}");
}
}