Как сделать инспектор unity?
Надоел стандартный Inspector, Unity 6, нужна своя подсказка для компонента DoorSettings.
Компьютеры и связь
Юридическая консультация
Семья и дом
Еда и кулинария
Города и страны, туризм
Надоел стандартный Inspector, Unity 6, нужна своя подсказка для компонента DoorSettings.
v4-pro
| Часть | Назначение |
|---|---|
| Assets/Editor/DoorSettingsEditor.cs | Редакторский скрипт |
| CustomEditor(typeof(DoorSettings)) | Привязка к нужному компоненту |
| OnInspectorGUI | Отрисовка инспектора |
| DrawDefaultInspector() | Сохранение стандартных полей |
| EditorGUILayout.HelpBox | Текст подсказки |
DoorSettings должен уже существовать. После компиляции выберите объект с этим компонентом. Такая подсказка отображается в Editor и не создаёт интерфейс внутри игры.
4.20
Для добавления подсказки к Inspector существующего DoorSettings можно сделать небольшой пользовательский инспектор на IMGUI. Создайте отдельный файл DoorSettingsEditor.cs в папке Assets/Editor. Это редакторский код, поэтому он должен быть отделён от компонента, который работает в игре.
Минимальный вариант выглядит так:
using UnityEditor;
[CustomEditor(typeof(DoorSettings))]
public class DoorSettingsEditor : Editor
{
public override void OnInspectorGUI()
{
DrawDefaultInspector();
EditorGUILayout.HelpBox(
"Настройки дверного механизма.",
MessageType.Info);
}
}
Пример предполагает, что класс DoorSettings уже существует в проекте и доступен этому редакторскому коду. Если он находится в пространстве имён, добавьте соответствующий using или укажите полное имя типа. Здесь не создаётся второй игровой компонент с таким же названием.
DrawDefaultInspector сохраняет обычное отображение полей компонента. Следующий вызов добавляет информационный блок под ними. Если убрать первый вызов и не нарисовать поля самостоятельно, привычные настройки могут исчезнуть из Inspector, хотя данные компонента останутся.
После компиляции выберите объект с DoorSettings и посмотрите его компонент. Подсказка относится к этому типу, поэтому выбор другого объекта без DoorSettings её не покажет. При ошибке сначала проверьте имя типа и Console, а не создавайте копии класса.
OnInspectorGUI вызывается редактором для отрисовки интерфейса. Не размещайте там игровое действие, которое должно выполняться один раз при запуске сцены: многократная перерисовка не является подходящим событием для такой логики. Для вашей задачи достаточно информационного текста и стандартных полей.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
4o
4o
Как сделать инспектор unity?
Создайте Editor-класс с CustomEditor(typeof(DoorSettings)) в папке Editor. Переопределите OnInspectorGUI, вызовите DrawDefaultInspector и добавьте подсказку через EditorGUILayout.HelpBox.