Объявление
public AssetSettingsProvider(string settingsWindowPath, Func<Editor> editorCreator, IEnumerablepublic AssetSettingsProvider(string settingsWindowPath, Func<Object> settingsGetter);
Параметры
settingsWindowPath | Путь к настройкам в окне настроек. В качестве разделителя используется «/». Последний токен становится меткой настроек, если он не указан. |
editorCreator | Функтор, создающий редактор, способный изменять настройки. |
keywords | Список ключевых слов для сравнения с тем, что ищет пользователь. Когда пользователь вводит значения в поле поиска в окне настроек, SettingsProvider.HasSearchInterest пытается сопоставить эти ключевые слова с этим списком. |
settingsGetter | Функтор, создающий или получающий объект настроек. |
Описание
Создает новый AssetSettingsProvider, чтобы вы могли обернуть устаревшие настройки (то есть настройки, которые ранее отображались в Инспекторе).
using UnityEditor;
using UnityEngine;
// Create a new type of SettingsAsset.
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(k_MyCustomSettingsPath);
if (settings == null)
{
settings = ScriptableObject.CreateInstance();
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(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(MyCustomSettings.k_MyCustomSettingsPath)));
// Register keywords from the properties of MyCustomSettings
provider.keywords = SettingsProvider.GetSearchKeywordsFromSerializedObject(new SerializedObject(AssetDatabase.LoadAllAssetsAtPath(MyCustomSettings.k_MyCustomSettingsPath)));
return provider;
}
}