Разработка редакторов - это просто!

» опубликован
Данная статья - самоучитель от меня в мир редакторов Unity.
Да, не сказать, что я все вопросы для себя там устаканил и знаю точно как всё сделать правильно - но опыта в них у меня достаточно, чтобы рассказать о том, как устроен этот процесс
Хочу заметить, что данная статья не рассматривает способы взаимодействия с Unity, которые затрагивают игровой билд - среди них я могу назвать класс Gizmos и атрибут ContextMenu.
Для понятности весь код в данной статье я буду подписывать словами Game и Editor.
Вот так:

Game: Отрывок MyClass.cs

//Код моего класса

Editor: отрывок MyClassEditor.cs

//Код моего класса
Дело в том, что классы, которые вы пишете для редактора всегда должны находится в папке Editor. Сама папка Editor может находиться почти где угодно.
В целом можно создать две папки внутри папки Assets:
  • Assets
    • Game
    • Editor
Если в каждой папке будет лежать по скрипту (любому) - при запуске Visual Studio (или MonoDevelop, или любой другой программной среды) автоматически сформируется две сборки - для редактора и для игры. Все файлы внутри папки Editor станут частью сборки редактора, как можно догадаться. Отсюда и разделение, чтобы вы понимали, где какой код пишется.
Для удобства советую сразу создавать в своем проекте эти папки, и положить в каждую из них по скрипту *.cs (мы будем писать только на C#).
На деле же обычно распространена немного иная практика, при которой папка Editor создается по надобности почти в каждой папке со скриптами, что позволяет как-то упорядочить хаос. Однако к этому вы потом придете самостоятельно (или не придете).
Рассказывать я буду о самых азах - естественно, что весь материал не охватить статьей, да и я не преследую цели рассказать про абсолютно все случаи.
Для полноценного понимания написанного в статье кода понадобится понимание основных принципов работы стандартного UnityGUI. Подробности, касающиеся того, как рисуется графика данная статья не рассматривает.
Что ж. Приступим!

 

Просмотров: 1 408

Devion #1 - 4 года назад (отредактировано ) 2
Статью начинал писать довольно-таки давно (аш в 14 году), и в общем-то весь пласт тем, которые хотел осветить изначально - оказался слишком большим, настолько большим, что лучше выписывать его подробнее где-то отдельно. Потому эта статья получилась сильно урезанной до совсем поверхностного, за что заранее прошу прощения.