SquareDash/Library/PackageCache/com.unity.services.mediation@1.0.5/Editor/Settings/ReloadableUserSetting.cs
kingjuulian06 0efb85038a Arbeit 2
2023-11-21 22:03:49 +01:00

32 lines
992 B
C#

using System;
using UnityEditor;
using UnityEditor.SettingsManagement;
namespace Unity.Services.Mediation.Settings.Editor
{
class ReloadableUserSetting<T> : UserSetting<T>, IDisposable
{
public ReloadableUserSetting(UnityEditor.SettingsManagement.Settings settings, string key, T value, SettingsScope scope = SettingsScope.Project)
: base(settings, key, value, scope)
{
settings.afterSettingsSaved += Reload;
}
public ReloadableUserSetting(UnityEditor.SettingsManagement.Settings settings, string repository, string key, T value, SettingsScope scope = SettingsScope.Project)
: base(settings, repository, key, value, scope)
{
settings.afterSettingsSaved += Reload;
}
public void Reload()
{
value = settings.Get(key, scope, defaultValue);
}
public void Dispose()
{
settings.afterSettingsSaved -= Reload;
}
}
}