При помощи чего сделано это окно?

Раздел, посвящённый всему, что связано с программированием для Редактора Юнити. Скрипты Редактора, Wizards и прочее.

При помощи чего сделано это окно?

Сообщение Diab10 21 май 2014, 11:28

Всем привет! :)

При помощи чего можно сделать такое окно?

Изображение

Имею ввиду правую часть, где сетка, координаты, точки с линиями.
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: При помощи чего сделано это окно?

Сообщение Nicloay 21 май 2014, 11:33

2 варианта, либо через gui вызовы, (я так делал в атлас едиторе)
либо рендер с камеры.
Если 2D - то скорее всего первое.

п.с. можеш кстать editor.dll открыть в dotpeak и посмотреть например как сделан редактор анимаций - там сетка похожая, и драг н дроп есть.
If you wish to make an apple pie from scratch, you must first invent the universe.(Carl Sagan, Cosmos)
| My Asset Store | coloring book | github | _wiki.unity3d.com | twitter | linkedin |
Аватара пользователя
Nicloay
Адепт
 
Сообщения: 1288
Зарегистрирован: 31 май 2012, 09:27
Откуда: Альпс
  • Сайт

Re: При помощи чего сделано это окно?

Сообщение Diab10 21 май 2014, 12:08

Nicloay писал(а):2 варианта, либо через gui вызовы, (я так делал в атлас едиторе)
либо рендер с камеры.
Если 2D - то скорее всего первое.

п.с. можеш кстать editor.dll открыть в dotpeak и посмотреть например как сделан редактор анимаций - там сетка похожая, и драг н дроп есть.


Это окно в 2D пространстве, да. Тут можно двигать камеру в стороны, приближать/отдалять колёсиком.
Т.е. всё это вручную рисовать нужно?
Я думал, что в юнити есть такое готовое окно, т.к. оно очень похоже на окно редактирования Curve.

Врятли мой скилл программирования позволит мне разобраться в dll юнити :D Сейчас попробую :)
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: При помощи чего сделано это окно?

Сообщение Unitmen 23 май 2014, 11:59

90% Используется Handles.DrawAAPolyLine или Handles.DrawLine при этом в качестве OnGUI - EditorWindow OnGUI метод.
С помощью Handles нарисовать сетку, сделать масштабирование и нарисовать линии - не составит труда.
Можно вообще сделать это в OnSceneGUI, просто выставив камеру сцены в ортодоксальную проекцию. Тут вообще все очень просто:
Синтаксис:
Используется javascript
        // Draw lines to the connected game objects that a script has.
        // if the target object doesnt have any game objects attached
        // then it draws a line from the Last checked object to 0,0,0
       
        @CustomEditor (ConnectedAAPolyLine)
        class ConnectedAAPolyLineHandle extends Editor {
               
                var positions : Vector3[];
               
            function OnSceneGUI () {
                if(target.polyLineObjs.Length > 0)
                        positions = new Vector3[target.polyLinesObjs.Length];
                for(var i = 0; i < target.polyLineObjs.Length; i++)
                        if(target.polyLineObjs[i])
                                positions[i] = target.polyLineObjs[i].transform.position;
                        else
                                positions[i] = Vector3.zero;           
                Handles.DrawAAPolyLine(positions);
            }
        }
Аватара пользователя
Unitmen
UNIт
 
Сообщения: 122
Зарегистрирован: 10 авг 2013, 00:55

Re: При помощи чего сделано это окно?

Сообщение Diab10 23 май 2014, 12:27

Ясно, спасибо.
Значит всё ручками. Рассчитывал, что есть готовый модуль в юньке :)
Аватара пользователя
Diab10
Адепт
 
Сообщения: 3401
Зарегистрирован: 17 мар 2011, 20:42
Откуда: 123 RUS
Skype: diab1023

Re: При помощи чего сделано это окно?

Сообщение Unitmen 23 май 2014, 18:13

Diab10 писал(а):Ясно, спасибо.
Значит всё ручками. Рассчитывал, что есть готовый модуль в юньке :)
В юньке даже GUI нормального нет, все классы от которых нужно (хочется) наследоваться internal, мало того, все базовые методы работы с GUI просто наглухо запечатаны за иерархией наследования... Но выкрутится можно, а если приложить голову, то и не сильно напрягая руки...
Тот код что я дал, это кстати из стандартной справки, там все просто и понятно. Тут даже голову сильно напрягать не нужно...
Handles + Gizmo - простейшая задача, особенно в OnSceneGUI.
Аватара пользователя
Unitmen
UNIт
 
Сообщения: 122
Зарегистрирован: 10 авг 2013, 00:55


Вернуться в Editor

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1