I’m exploring usage of the SettingsManager package 2.0.1. Everything works fine and I managed to implement settings as well as user prefs.
The issue is, I see both in both windows! Say I have 2 values I want to show in Project Settings, and 2 that I want to be located in User Preferences, I cannot seem to separate them and I see all 4 in both windows.
I have a manager like this:
static class SettingsManager
{
internal const string k_PackageName = "com.ciro.my-package";
private static Settings s_instance;
internal static Settings instance
{
get
{
if (s_instance == null)
s_instance = new Settings(k_PackageName);
return s_instance;
}
}
}
and a provider like this:
static class SettingsProvider
{
const string PreferencesPath = "Preferences/My preferences";
const string SettingsPath = "Project/My Project Settings";
[SettingsProvider]
static SettingsProvider CreateSettingsProvider()
{
var provider = new UserSettingsProvider(SettingsPath,
SettingsManager.settings,
new [] { typeof(SettingsProvider).Assembly }, SettingsScope.Project);
return provider;
}
[SettingsProvider]
static SettingsProvider CreatePreferencesProvider()
{
var provider = new UserSettingsProvider(PreferencesPath,
SettingsManager.settings,
new [] { typeof(SettingsProvider).Assembly }, SettingsScope.User);
return provider;
}
}
I created a wrapper (actually two) as suggested in the docs:
class PackageSetting<T> : UserSetting<T>
{
public PackageSetting(string key, T value)
: base(SettingsManager.settings, key, value, SettingsScope.Project) { }
}
class UserPref<T> : UserSetting<T>
{
public UserPref(string key, T value)
: base(SettingsManager.userPrefs, key, value, SettingsScope.User) { }
}
Finally I declare my settings and user prefs like this:
[UserSetting("Category X", "Auth token", "")]
private static UserPref<string> authToken
= new UserPref<string>("prefs.authToken", "");
[UserSetting("Category 1", "Org name", "")]
private static PackageSetting<string> orgName
= new PackageSetting<string>("prefs.orgName", "");
But even though I’m providing different SettingsScope, it seems like they are ignored? I know that one of the parameter of the settings provider is the assembly in which to look for UserSetting attributes and one solution might be to “hide” Settings and Prefs in two different assemblies, but it feels convoluted.
Am I doing something wrong? - Thanks