Unity, динамический инспектор

Unity, динамический инспектор

@nrjwolf_dev

Навигация

Уроки, трюки по Unity

  1. Динамический инспектор
  2. AssetBundles, подгрузка контента
  3. Unity, разрабатываем свой компонент
  4. Unity — Динамическое освещение в 2D
  5. Unity и телеграм
  6. Unity — автогенерация Enum

Стартуем

Сегодня я дам вам очень крутой скрипт, который позволит навести порядок в свойствах класса в инспекторе.

Дезактивируем редактирование класса

Задумка состоит в том, что в отдельных ситуациях мы используем только часть переменных, соответсвенно удобнее скрыть те, что не нужны нам в определенных условиях. Особенно, полезно, если ваш проект потому будет настраивать, скажем, геймдизайнер.

Оригинальный скрипт лежит тут, я лишь отыскал решение, слегка доработал ( встроил enum ) и опубликовал, чтобы и вы могли воспользоваться этой бомбой.

Настройка

Для работы нам нужно загрузить в проект два скрипта, первый будет постоянно работать в редакторе и заниматься отрисовкой, поэтому он должен лежать в папке Editor ( в любом месте вашего проекта ), второй класс отвечает за атрибуты, которые мы будем использовать для условий скрытия.

Скрипт отрисовки ( кладем в Editor, создаем папку, если ее нет )

Скрипт атрибутов

Пример расположения скриптов

Использование

Здесь начинается самое интересное. Давайте для начала повторим трюк, который мы видели на гифке в начале статьи. Создаем пустой класс, вешаем его на любой объект на сцене и пишем код :

Код для первой гифки
По непонятным мне причинам, скрыть просто List не выходит, поэтому создаем сериализованный класс и в нем добавляем лист

Мы передаем три параметра :

  1. Имя переменной
  2. False - деактивируем, True - скрываем
  3. Инверсия значений

Теперь рассмотрим еще некоторые варианты использования.

Зависимость от двух переменных

Код :

И наконец мое любимое использование с помощью enum

Показываем нужные переменный в зависимости от enum значений

Код:

Преобразовываем enum в int

Можно поставить инверсию для enum

На этом все. Вы также, можете дополнить нужные вам функции, но придется немного разобраться в этих двух скриптах.

Исходник тут

Если вам понравился урок, вы можете поддержать меня рублем через написанного нами донат бота, а также подписавшись на мой канал. Любое из этих действий ускорит выход новых уроков и поднимет мне настроение :)
@nrjwolf


Report Page