Maze / Library /PackageCache /com.unity.settings-manager@1.0.3 /Samples~ /PackageWithProjectAndUserSettings /MySettingsProvider.cs
| using System; | |
| using UnityEngine; | |
| namespace UnityEditor.SettingsManagement.Examples | |
| { | |
| /// <summary> | |
| /// To create an entry in the Preferences window, define a new SettingsProvider inheriting <see cref="UserSettingsProvider"/>. | |
| /// You can also choose to implement your own SettingsProvider and ignore this implementation. The benefit of using | |
| /// <see cref="UserSettingsProvider"/> is that all <see cref="UserSetting{T}"/> fields in the assembly are automatically | |
| /// populated within the preferences, with support for search and resetting default values. | |
| /// </summary> | |
| static class MySettingsProvider | |
| { | |
| const string k_PreferencesPath = "Preferences/Package With Project and User Settings"; | |
| [] | |
| static SettingsProvider CreateSettingsProvider() | |
| { | |
| var provider = new UserSettingsProvider(k_PreferencesPath, | |
| MySettingsManager.instance, | |
| new [] { typeof(MySettingsProvider).Assembly }); | |
| return provider; | |
| } | |
| // For backwards compatibility it is possible to create an instance of UserSettingsProvider and invoke OnGUI manually. | |
| [] | |
| static UserSettingsProvider s_SettingsProvider; | |
| [] | |
| static void ProBuilderPreferencesGUI() | |
| { | |
| if (s_SettingsProvider == null) | |
| s_SettingsProvider = new UserSettingsProvider(MySettingsManager.instance, new[] { typeof(MySettingsProvider).Assembly }); | |
| s_SettingsProvider.OnGUI(null); | |
| } | |
| } | |
| } | |