Объявление
public static AssetSettingsProvider CreateProviderFromObject(string settingsWindowPath, Object settingsObj, IEnumerableПараметры
settingsWindowPath | Путь к настройкам в окне настроек. В качестве разделителя используется «/». Последний токен становится меткой настроек, если он не указан. |
settingsObj | Объект настроек для отображения |
keywords | Список ключевых слов для сравнения с тем, что ищет пользователь. Когда пользователь вводит значения в поле поиска в окне настроек, SettingsProvider.HasSearchInterest пытается сопоставить эти ключевые слова с этим списком. |
Возвращает
AssetSettingsProvider Возвращает AssetSettingsProvider, который создаст Editor для этого конкретного актива.
Описание
Создаёт AssetSettingsProvider из объекта настроек.
using UnityEngine;
using UnityEditor;
class MyCustomSettings : ScriptableObject
{
public const string k_MyCustomSettingsPath = "Assets/Editor/MyCustomSettings.asset";
[SerializeField]
private int m_Number;
[SerializeField]
private string m_SomeString;
internal static MyCustomSettings GetOrCreateSettings()
{
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);
AssetDatabase.SaveAssets();
}
return settings;
}
internal static SerializedObject GetSerializedSettings()
{
return new SerializedObject(GetOrCreateSettings());
}
}
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 returns 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;
}
}