class in UnityEditor
/
Inherits from:SettingsProvider
Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.
CloseFor some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.
CloseAssetSettingsProvider is a specialization of the SettingsProvider class that converts legacy settings to Unified Settings. Legacy settings include any settings that used the Inspector to modify themselves, such as the *.asset files under the ProjectSettings folder. Under the hood, AssetSettingsProvider creates an Editor for specific Assets and builds the UI for the Settings window by wrapping the Editor.OnInspectorGUI function.
Internally we use this class to wrap our existing settings.
using UnityEditor; using UnityEngine;
// Create a new type of Settings Asset. class MyCustomSettings : ScriptableObject { public const string k_MyCustomSettingsPath = "Assets/Editor/MyCustomSettings.asset";
[SerializeField] private int m_Number;
[SerializeField] private string m_SomeString;
internal static SerializedObject GetSettings() { var settings = AssetDatabase.LoadAssetAtPath<MyCustomSettings>(k_MyCustomSettingsPath); if (settings == null) { settings = ScriptableObject.CreateInstance<MyCustomSettings>(); settings.m_Number = 42; settings.m_SomeString = "The answer to the universe"; AssetDatabase.CreateAsset(settings, k_MyCustomSettingsPath); }
return new SerializedObject(settings); } }
[CustomEditor(typeof(MyCustomSettings))] class MyCustomSettingsEditor : Editor { // Nothing to do, this uses the Generic Editor to display MyCustomSettings properties }
class AssetSettingsProviderRegister { [SettingsProvider] public static SettingsProvider CreateFromFilePath() { // Create an AssetSettingsProvider from a file path: var provider = AssetSettingsProvider.CreateProviderFromAssetPath("Project/AssetSettings/FromFile", MyCustomSettings.k_MyCustomSettingsPath);
// Register keywords from the properties of MyCustomSettings provider.keywords = SettingsProvider.GetSearchKeywordsFromSerializedObject(new SerializedObject(AssetDatabase.LoadAllAssetsAtPath(MyCustomSettings.k_MyCustomSettingsPath))); return provider; }
[SettingsProvider] public static SettingsProvider CreateFromSettingsObject() { // Create an AssetSettingsProvider from a settings object (UnityEngine.Object): var settingsObj = AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(MyCustomSettings.k_MyCustomSettingsPath); var provider = AssetSettingsProvider.CreateProviderFromObject("Project/AssetSettings/FromObject", settingsObj);
// Register keywords from the properties of MyCustomSettings provider.keywords = SettingsProvider.GetSearchKeywordsFromSerializedObject(new SerializedObject(settingsObj)); return provider; }
[SettingsProvider] public static SettingsProvider CreateFromSettingsFromFunctor() { // Create an AssetSettingsProvider from a functor that must return a UnityEngine.Object: var provider = new AssetSettingsProvider("Project/AssetSettings/FromFunctor", () => Editor.CreateEditor(AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(MyCustomSettings.k_MyCustomSettingsPath)));
// Register keywords from the properties of MyCustomSettings provider.keywords = SettingsProvider.GetSearchKeywordsFromSerializedObject(new SerializedObject(AssetDatabase.LoadAllAssetsAtPath(MyCustomSettings.k_MyCustomSettingsPath))); return provider; } }
settingsEditor | Editor providing UI to modify the settings. |
AssetSettingsProvider | Creates a new AssetSettingsProvider so you can wrap legacy settings (that is, settings that previously appeared in the Inspector). |
OnActivate | Overrides SettingsProvider.OnActivate for this AssetSettingsProvider. |
OnDeactivate | Overrides SettingsProvider.OnDeactivate for this AssetSettingsProvider. |
OnFooterBarGUI | Overrides SettingsProvider.OnFooterBarGUI for this AssetSettingsProvider. |
OnGUI | Overrides SettingsProvider.OnGUI for this AssetSettingsProvider. |
OnTitleBarGUI | Overrides SettingsProvider.OnTitleBarGUI for this AssetSettingsProvider. This draws the button bar that contains the "add to preset" and the "help" buttons. |
CreateProviderFromAssetPath | Create an AssetSettingsProvider from an asset path. |
CreateProviderFromObject | Create an AssetSettingsProvider from a settings object. |
CreateProviderFromResourcePath | Create an AssetSettingsProvider from an asset resource path. |
activateHandler | Overrides SettingsProvider.OnActivate. |
deactivateHandler | Overrides SettingsProvider.OnDeactivate. |
footerBarGuiHandler | Overrides SettingsProvider.OnFooterBarGUI. |
guiHandler | Overrides SettingsProvider.OnGUI. |
hasSearchInterestHandler | Overrides SettingsProvider.HasSearchInterest. |
inspectorUpdateHandler | Overrides SettingsProvider.OnInspectorUpdate. |
keywords | Gets or sets the list of keywords to compare against what the user is searching for. When the user enters values in the search box on the Settings window, SettingsProvider.HasSearchInterest tries to match those keywords to this list. |
label | Gets or sets the display name of the SettingsProvider as it appears in the Settings window. If not set, the Settings window uses last token of SettingsProvider.settingsPath instead. |
scope | Gets the Scope of the SettingsProvider. The Scope determines whether the SettingsProvider appears in the Preferences window (SettingsScope.User) or the Settings window (SettingsScope.Project). |
settingsPath | Gets Path used to place the SettingsProvider in the tree view of the Settings window. The path should be unique among all other settings paths and should use "/" as its separator. |
titleBarGuiHandler | Overrides SettingsProvider.OnTitleBarGUI. |
HasSearchInterest | Checks whether the SettingsProvider should appear when the user types something in the Settings window search box. SettingsProvider tries to match the search terms (even partially) to any of the SettingsProvider.keywords. The search is case insensitive. |
OnInspectorUpdate | OnInspectorUpdate is called at 10 frames per second to give the inspector a chance to update. See EditorWindow.OnInspectorUpdate for more details. |
Repaint | Request the SettingsWindow for a repaint. |
GetSearchKeywordsFromGUIContentProperties | Extract search keywords from all public static memebers in a specific Type. |
GetSearchKeywordsFromPath | Extract search keywords from the serialized properties of an Asset at a specific path. |
GetSearchKeywordsFromSerializedObject | Extract search keywords from from the serialized properties of a SerializedObject. |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.