Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


AssetSettingsProvider

AssetSettingsProvider 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.
Read time 3 minutesLast updated 6 days ago

Definition

public class AssetSettingsProvider : SettingsProvider

Examples

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; }}

Constructors

Constructor

Description

AssetSettingsProvider(System.String,System.Func{UnityEditor.Editor},System.Collections.Generic.IEnumerable{System.String})Creates a new AssetSettingsProvider so you can wrap legacy settings (that is, settings that previously appeared in the Inspector).
AssetSettingsProvider(System.String,System.Func{UnityEngine.Object})Creates a new AssetSettingsProvider so you can wrap legacy settings (that is, settings that previously appeared in the Inspector).

Properties

Property

Description

settingsEditorEditor providing UI to modify the settings.

Methods

Method

Description

OnActivateOverrides SettingsProvider.OnActivate for this AssetSettingsProvider.
OnDeactivateOverrides SettingsProvider.OnDeactivate for this AssetSettingsProvider.
OnFooterBarGUIOverrides SettingsProvider.OnFooterBarGUI for this AssetSettingsProvider.
OnGUIOverrides SettingsProvider.OnGUI for this AssetSettingsProvider.
OnTitleBarGUIOverrides SettingsProvider.OnTitleBarGUI for this AssetSettingsProvider. This draws the button bar that contains the "add to preset" and the "help" buttons.

Static Methods

Method

Description

CreateProviderFromAssetPathCreate an AssetSettingsProvider from an asset path.
CreateProviderFromObjectCreate an AssetSettingsProvider from a settings object.
CreateProviderFromResourcePathCreate an AssetSettingsProvider from an asset resource path.

Inheritance