Анимация в редакторе

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

Анимация в редакторе

Сообщение seaman 06 сен 2011, 20:24

Хочется вывести анимацию в своем окне редактора. В чем проблема.
1. В редакторе (не в игровом окне, а в своем) можно выводить картинки только используя GUI. Если не так - ткните, плиз, как по другому.
2. GUI нормально в Update не работает (или у меня уже мозги не варят) - выдает NullReferenceException. Как я понял из-за отсутствия Event.
3. OnGUI вызывается каждый кадр только в игре. В редакторе нет,- только по событиям ввода.
Как еще перерисовывать картинку в окне редактора каждый кадр я так и не сообразил.

ЗЫ: чтобы не было вопросов - зачем. Хочу отрисовывать анимированный спрайт в окне редактора, чтобы было проще понять что вставляешь в игру. По одному кадру это не всегда понятно.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Анимация в редакторе

Сообщение Neodrop 06 сен 2011, 20:58

Редактировать GUI не запуская Play можно только в Antares Universe

(видео старенькое, но наглядное вполне)
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Анимация в редакторе

Сообщение Neyl 06 сен 2011, 21:00

EditorWindow.Repaint или Editor.Repaint (в зависимости от того, какой редактор вы используете) вызовет перерисовку всего gui.

Для EditorWindow вызывать можно по EditorWindow.Update 100 раз в секунду или по EditorWindow.OnInspectorUpdate 10 раз в секунду.

Для кастомного инспектора можно воспользоваться EditorApplication.update.
Аватара пользователя
Neyl
UNIверсал
 
Сообщения: 404
Зарегистрирован: 20 июн 2010, 10:17

Re: Анимация в редакторе

Сообщение Neodrop 06 сен 2011, 21:02

Не путайте человека. Ничто из перечисленного не подойдёт для прорисовки GUI
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Анимация в редакторе

Сообщение seaman 06 сен 2011, 21:21

Я наверное плохо описал задачу. Сорри за косноязычность. Но видео по Universe к моей задаче не подходит, а вот EditorWindow.Repaint отлично подошло. Спасибо.
ЗЫ: Мне не ГУИ игры надо перерисовывать, а ГУИ окна редактора.
Типа:
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Анимация в редакторе

Сообщение Neodrop 06 сен 2011, 21:26

А чем тогда плох родной и правильный метод OnInspectorGUI ?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Анимация в редакторе

Сообщение seaman 06 сен 2011, 21:39

Ну, насколько я понимаю OnInspectorGUI для объектов, выбранных или в сцене, или в проекте. У меня объектов никаких нет. В данном окне я буду их создавать. Выбираешь нужный спрайт/тайл. Нажимаешь кнопку. В сцене появляется квад с соответствующей текстурой. Картинки же в этом окне рисуются из текстуры-атласа и описания спрайтов.
Можно, конечно, при выборе файла описания в проекте, выводить кастомный инспектор и в нем прорисовывать спрайты/тайлы. Но мне показалось проще создать свое окно.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Анимация в редакторе

Сообщение Neodrop 06 сен 2011, 21:45

Хреново вы понимаете. Это родной метод прорисовки GUI для EditorWindow
Что, блин, за идиотизм то такой? ~x(
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Анимация в редакторе

Сообщение seaman 06 сен 2011, 22:07

Это родной метод прорисовки GUI для EditorWindow

Ну может я что-то и не понимаю, но в EditorWindow нет метода OnInspectorGUI. Там есть OnInspectorUpdate, который вызывается 10 раз в секунду. Возможно он мне подойдет, попробую.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Анимация в редакторе

Сообщение Neodrop 06 сен 2011, 22:35

Тьфу, чёрт, точно - просто void OnGUI()
Попутал с кастомными инспекторами.
Никаких к чёрту Update. Разве ж не ясно написано, что GUI должен работать в OnGUI методах?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Анимация в редакторе

Сообщение seaman 06 сен 2011, 22:46

Ну я в самом начале писал, что OnGUI не подходит, т.к. в отличие от игры не вызывается каждый кадр. Т.е. почему то не посылается событие Repaint. Проверял сотню раз. Просто в OnGUI в EditorWindow ставил Debug - не выводится каждый кадр. Это событие нужно вызывать вручную window.Repaint(), что я сам как-то не сообразил сделать.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Анимация в редакторе

Сообщение Neodrop 06 сен 2011, 22:48

В конце кода пишем Repait() и радуемся постоянному обновлению окна.
Почему-то мне подходит, с полумиллионом строк кода, а вам нет :-
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Анимация в редакторе

Сообщение seaman 06 сен 2011, 22:51

Так уже и подходит :)
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара


Вернуться в Editor

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

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