Описание
AssetSettingsProvider — это специализация класса SettingsProvider, которая преобразует устаревшие настройки в унифицированные настройки. Устаревшие настройки включают в себя любые настройки, которые использовали Инспектор для изменения самих себя, например, файлы *.asset в папке ProjectSettings. Под капотом AssetSettingsProvider создает редактор для определенных активов и создает пользовательский интерфейс для окна настроек, обертывая Editor.OnInspectorGUI функция.
Внутри мы используем этот класс для переноса наших существующих настроек.
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;
}
}
Свойства
settingsEditor |
Редактор, обеспечивающий пользовательский интерфейс для изменения настроек. |
Конструкторы
AssetSettingsProvider |
Создает новый AssetSettingsProvider, чтобы вы могли обернуть устаревшие настройки (то есть настройки, которые ранее отображались в Инспекторе). |
Публичные Методы
OnActivate |
Переопределяет SettingsProvider.OnActivate для этого AssetSettingsProvider. |
OnDeactivate |
Переопределяет SettingsProvider.OnDeactivate для этого AssetSettingsProvider. |
OnFooterBarGUI |
Переопределяет SettingsProvider.OnFooterBarGUI для этого AssetSettingsProvider. |
OnGUI |
Переопределяет SettingsProvider.OnGUI для этого AssetSettingsProvider. |
OnTitleBarGUI |
Переопределяет SettingsProvider.OnTitleBarGUI для этого AssetSettingsProvider. Это рисует панель кнопок, содержащую кнопки «добавить в пресет» и «помощь». |
Статические Методы
Унаследованные члены
Свойства
activateHandler |
Переопределяет SettingsProvider.OnActivate. |
deactivateHandler |
Переопределяет SettingsProvider.OnDeactivate. |
footerBarGuiHandler |
Переопределяет SettingsProvider.OnFooterBarGUI. |
guiHandler |
Переопределяет SettingsProvider.OnGUI. |
hasSearchInterestHandler |
Переопределяет SettingsProvider.HasSearchInterest. |
spectorUpdateHandler |
Переопределяет SettingsProvider.OnInspectorUpdate. |
keywords |
Получает или задает список слов для сравнения с тем, что ищет пользователь. Когда пользователь вводит в поле поиска в настройках настройки, SettingsProvider.HasSearchInterest может сопоставить эти ключевые слова с этим значением. |
label |
Получает или задает отображаемое имя поставщика настроек, которое отображается в окне настроек. Если не задано, в настройках окна вместо этого используется последний токен SettingsProvider.settingsPath. |
scope |
Получает область действия SettingsProvider. Scope появляется, отображается ли SettingsProvider в окне настроек (SettingsScope.User) или в окне настроек (SettingsScope.Project). |
settingsPath |
Получает путь, попадание для помещения SettingsProvider в древовидном представлении окна настроек. Путь должен быть применен среди всех других путей к настройке и должен использовать «/» в качестве разделителя. |
titleBarGuiHandler |
Переопределяет SettingsProvider.OnTitleBarGUI. |
Публичные методы
HasSearchInterest |
Проверяет, должен ли появиться SettingsProvider, когда пользователь вводит что-то в поле поиска настроек окна. SettingsProvider может сопоставить условия поиска (даже частично) с распространенными из SettingsProvider.keywords. Поиск нечувствителен к регистру. |
OnInspectorUpdate |
OnInspectorUpdate вызывается быстро 10 кадров в секунду, чтобы дать инспектору возможность обновиться. Дополнительные сведения см. в разделе EditorWindow.OnInspectorUpdate. |
Repaint |
Запросить окно настроек для перерисовки. |
Статические методы