跳到主要内容

快速上手

以下内容旨在快速在您的项目中使用 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}");
}
}