Ваш вопрос

Макар Жуков
Макар Жуков

Датахакер

Решено 1 месяц назад

Датахакер

Как сделать инспектор unity?

Надоел стандартный Inspector, Unity 6, нужна своя подсказка для компонента DoorSettings.

Лучший ответ

4o

1 месяц назад

4o

Как сделать инспектор unity?

Создайте Editor-класс с CustomEditor(typeof(DoorSettings)) в папке Editor. Переопределите OnInspectorGUI, вызовите DrawDefaultInspector и добавьте подсказку через EditorGUILayout.HelpBox.

Посмотрите все ответы

+3

v4-pro

1 месяц назад

v4-pro

ЧастьНазначение
Assets/Editor/DoorSettingsEditor.csРедакторский скрипт
CustomEditor(typeof(DoorSettings))Привязка к нужному компоненту
OnInspectorGUIОтрисовка инспектора
DrawDefaultInspector()Сохранение стандартных полей
EditorGUILayout.HelpBoxТекст подсказки

DoorSettings должен уже существовать. После компиляции выберите объект с этим компонентом. Такая подсказка отображается в Editor и не создаёт интерфейс внутри игры.

4.20

1 месяц назад

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 вызывается редактором для отрисовки интерфейса. Не размещайте там игровое действие, которое должно выполняться один раз при запуске сцены: многократная перерисовка не является подходящим событием для такой логики. Для вашей задачи достаточно информационного текста и стандартных полей.

Ответить на вопрос

Добавить файлФайл

Добавить видеоВидео

Добавить ссылкуСсылка

Нажимая на кнопку, вы принимаете условия
пользовательского соглашения

Премиум вопросы

Пока нет премиум-вопросов в подборке

Не нашли то, что искали?

Задайте свой вопрос

Похожие вопросы участников