Страница 1 из 2

Как создать свой собственный редактор?

СообщениеДобавлено: 02 мар 2017, 20:40
Gamerrr999
Встроенный редактор Unity слишком ограничен и не очень хорошо подходит для моих задач.

Под собственным редактором я конечно имею в виду окно "Scene" (пусть он и располагается тоже там, на вкладке). Редактор должен иметь более широкий функционал, но первым делом я бы переработал внешний вид камеры и источников освещения. А также бы довел до ума навигацию по 3д сцены.

Пока вопрос только один: с чего начать работу? Собственно, как органично можно было бы вписать свой редактор в юнити, если быть чуть точнее.

Мануалы юзал, все (немножко) не то, что я хочу.

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 02 мар 2017, 20:57
samana
Unity очень неплохо заточен для расширения своего функционала, так что скорее всего вы сможете реализовать всё, что вам придумалось.
Но ваш вопрос слишком обширный, чтобы написать конкретный ответ.

Gamerrr999 писал(а):Мануалы юзал, все (немножко) не то, что я хочу.

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

Начните с создания кастомных окон, инспекторов.
Посмотрите уроки по Gizmo, Handles (рисование на сцене)
Узнайте какие классы предоставляют доступ к внутренним событиям Unity и какие коллбеки вызываются в той или иной ситуации.

Интересно, а чего так сильно вам не хватает в текущей камере и источнике света?

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 02 мар 2017, 21:19
Gamerrr999
Начните с создания кастомных окон, инспекторов.
Посмотрите уроки по Gizmo, Handles (рисование на сцене)
Узнайте какие классы предоставляют доступ к внутренним событиям Unity и какие коллбеки вызываются в той или иной ситуации.

Это все конечно интересно, но хотелось бы перейти к сути.

Давайте немного конкретизирую вопрос: Каким образом я могу переключать редактор сцены на свой собственный редактор? Мне представляется данный механизм может быть проделан через правый щелчок мыши по сцене и выбора из списка "своего" редактора. Возможен также вариант - переключение редактора из подменю сцены. Значит, первый вопрос, как добавить такое меню? Соответственно, вопрос номер два- как создать свою копию редактора, который бы чисто косметически отличалась бы от встроенного? Ради теста.

Интересно, а чего так сильно вам не хватает в текущей камере и источнике света?

Камеру собираюсь сделать более объемную. Не всегда ясно куда она повернута. Да, можно конечно переключить вид от позиции камеры, но визуальность - важная вещь. Что касается света, иконку тоже не мешало бы переработать тоже ради визуальности и удобности.

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 02 мар 2017, 21:35
samana
Копию редактора вряд ли получится просто взять и создать. Редактор - это целая программа, зачем её копировать, если можно просто добавить к существующей нужные вам фишки.

Для создания меню посмотрите материалы по MenuItem.

Gamerrr999 писал(а):Камеру собираюсь сделать более объемную. Не всегда ясно куда она повернута. Да, можно конечно переключить вид от позиции камеры, но визуальность - важная вещь. Что касается света, иконку тоже не мешало бы переработать тоже ради визуальности и удобности.


Для этого можно использовать Gizmos или Handles (нарисовать стрелочки куда смотрит камера или нарисовать что-то другое).

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

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 02 мар 2017, 21:55
Gamerrr999
Копию редактора вряд ли получится просто взять и создать. Редактор - это целая программа, зачем её копировать, если можно просто добавить к существующей нужные вам фишки.

Я не говорю о создании редактора с нуля. Зачем? Просто требуется своя, более удобная версия редактора. Возможно - как опция к уже существующему. Забегая немного вперед, мне понадобится даже пару редакторов немного отличных по своему функционалу с возможностью удобного переключения между ними.
Для создания меню посмотрите материалы по MenuItem.

Здесь должна быть ссылка. Посмотрю, отпишусь.

Для этого можно использовать Gizmos или Handles (нарисовать стрелочки куда смотрит камера или нарисовать что-то другое).

Боюсь что этим работа не ограничится. Мне не только нужно нарисовать стрелочку, но и сделать много чего еще. Например в качестве камеры и источников света использовать свои 3д модели.

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 02 мар 2017, 22:06
samana
Gamerrr999 писал(а):Здесь должна быть ссылка.

Нет, там ничего не должно быть. Когда вы введёте в поиске сами, то перед глазами будет много разной информации (которую можно почитать) не ограничиваясь конкретной ссылкой.


Gamerrr999 писал(а):Боюсь что этим работа не ограничится. Мне не только нужно нарисовать стрелочку, но и сделать много чего еще. Например в качестве камеры и источников света использовать свои 3д модели.


Вы можете просто повесить на камеру компонент MeshFilter и Mesh и добавить модель, не написав ни строчки кода.
Так же можно нарисовать с помощью Gizmos.DrawMesh.

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 02 мар 2017, 22:37
jet_aleks
Мне кажется что нужно автору немного посмотреть уроки по юнити. Так всегда происходит, когда человек не совсем понимает как инструмент работает и не знает всех его возможностей , он пытается внести свое. Я в юнити работаю около 3 лет, и иногда удивляюсь что можно сделать элементарными инструментами, нужно только найти подход. Безусловно что есть задачи которые не может решать юнити, лишь по одной причине - узкий профиль. Но к этому всему предоставляется расширение редактора.

P.S. Сам писал небольшие расширение. Был бы рад если бросят ссылки на полноценные уроки, интересные статьи. А автору желаю изучить существующий функционал.https://unity3d.com/ru/learn/live-training здесь много интересного для начинающего и не очень.

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 03 мар 2017, 15:30
Gamerrr999
Вопрос с меню почти исчерпан(правда осталось не выясненным как сделать новую вкладку меню для всех проектов на юнити по умолчанию). Теперь хотелось бы узнать каким образом можно получить доступ к гизмо. Эта область плохо документирована. За пару часов поиска я так и не обнаружил каким образом возможно управлять галочками в меню через скрипт. В частности, задача номер 1 на сей момент - отключить сетку в редакторе, заменив её позже своей.

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 03 мар 2017, 16:09
samana
Gamerrr999 писал(а): За пару часов поиска я так и не обнаружил каким образом возможно управлять галочками в меню через скрипт. В частности, задача номер 1 на сей момент - отключить сетку в редакторе, заменив её позже своей.


А вы ищите не только в документации, а ищите в интернете. Очень много ответов найдёте, даже на те темы, которых нет в документации.
https://forum.unity3d.com/threads/hidin ... pt.442814/

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 03 мар 2017, 16:30
Paul Siberdt
Судя по сообщением топикстартера, вспоминается пословица про плохого танцора. Постоянно что-то мешает, тогда как все, что необходимо - это изучить возможности движка в плане кастомизации редактора. Если не хочется ничего делать самостоятельно (ну, именно это я вижу во всех этих поисках готового инструмента для создания редактора мечты), найдите что-то подходящее на ассет сторе. Ребята из ProCore предлагают отличные надстройки панели Scene, включая и замену грида.

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 03 мар 2017, 17:26
Gamerrr999
samana писал(а):
Gamerrr999 писал(а): За пару часов поиска я так и не обнаружил каким образом возможно управлять галочками в меню через скрипт. В частности, задача номер 1 на сей момент - отключить сетку в редакторе, заменив её позже своей.


А вы ищите не только в документации, а ищите в интернете. Очень много ответов найдёте, даже на те темы, которых нет в документации.
https://forum.unity3d.com/threads/hidin ... pt.442814/

Осталось теперь понять как активируется это переключение. Куда поселилось "Toggle Grid"?

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 03 мар 2017, 17:30
Gamerrr999
Paul Siberdt писал(а):найдите что-то подходящее на ассет сторе. Ребята из ProCore предлагают отличные надстройки панели Scene, включая и замену грида.


Эта вещь поболее 100 баксов стоит даже со скидкой. Лучше пилить самому + лишний опыт всегда пригодится.

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 03 мар 2017, 17:31
samana
Gamerrr999 писал(а):Куда поселилось "Toggle Grid"?

Можно кликнуть на шестерёнку в инспекторе вашего скрипта и там будет новая опция. Либо ПКМ по имени скрипта в инспекторе, тогда выпадет контекстное меню и там тоже будет новая опция.

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 03 мар 2017, 17:45
Gamerrr999
samana писал(а):
Gamerrr999 писал(а):Куда поселилось "Toggle Grid"?

Можно кликнуть на шестерёнку в инспекторе вашего скрипта и там будет новая опция. Либо ПКМ по имени скрипта в инспекторе, тогда выпадет контекстное меню и там тоже будет новая опция.

Скрипт куда этот кидать? Я положил в Editor. Но меню никакого как не было так и нет.

Re: Как создать свой собственный редактор?

СообщениеДобавлено: 03 мар 2017, 17:59
samana
Скрипт, который унаследован от MonoBehaviour надо набросить на объект в сцене.

Смотрите, сначала, чтобы что-то сделать на Unity, надо выучить основы. Затем, когда основы уже понятны и вы чувствуете силы, то можно идти дальше и уже углубляться глубже и расширять Unity своими фишками.
Какой смысл сейчас вам расширять редактор, если ещё даже базовыми знаниями не располагаете окрепшими руками? Ну я не знаю, просто как-то странно это всё. Тоже самое, что пытаться научить бабушку разбираться в компьютере, и вместо того, чтобы дать ей время обучиться контролировать мышку в руке, сразу рассказывать ей о реестре, железе и драйверах.

Давайте, вы сначала немножко укрепите начальные знания в Unity, а потом уже будете расширять редактор. А то получается, что пытаетесь построить замок, но не помните нужные пропорции для замеса раствора.