Определить перемещаем ли выделенный объект в редакторе

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

Определить перемещаем ли выделенный объект в редакторе

Сообщение DDDENISSS 07 фев 2012, 19:33

Пытаюсь написать простой редактор тайлового уровня.
Тайлы буду перетягивать вручную как обычные объекты, но когда буду отпускать его, надо выровнять позицию тайла по координатной сетки.
Но не пойму как выделенный объект в данный момент перемещаем или нет.
В обычном MonoBehaviour даже Input не работает и не узнаешь нажата ли мышь или нет.
Может это можно через Editor сделать?
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33

Re: Определить перемещаем ли выделенный объект в редакторе

Сообщение seaman 07 фев 2012, 19:48

Может это:
EventType
Смотри - DragUpdated, DragPerform, DragExited
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Определить перемещаем ли выделенный объект в редакторе

Сообщение DDDENISSS 07 фев 2012, 20:37

Вроде то, но почему-то таких событий нету. Только mouseDrag вызывается.
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33

Re: Определить перемещаем ли выделенный объект в редакторе

Сообщение DDDENISSS 07 фев 2012, 21:44

И по Handles.DoPositionHandle не определишь нажата мышь на объекте или нет(
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33

Re: Определить перемещаем ли выделенный объект в редакторе

Сообщение Левш@ 07 фев 2012, 21:56

OnTriggerStay ?
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Определить перемещаем ли выделенный объект в редакторе

Сообщение DDDENISSS 07 фев 2012, 22:25

OnTriggerStay ?

Вообще не понял как это использовать.

Сделал вот так в OnSceneGUI()
Синтаксис:
Используется csharp
if( Event.current.type == EventType.MouseUp ) {
   tile.transform.localPosition = Align( tile.transform.localPosition );
   EditorUtility.SetDirty( target );
}
 

Вообщем-то так как я и хотел. Хотя не сильно нравится этот EventType.MouseUp. Все же было бы правильнее, что бы это было по событию окончания движения GameObject'а. Только таких событий нету. Для чего DragUpdated, DragPerform, DragExited я так и не понял.

Вот еще думаю можно как-то сделать, что бы выравнивание происходило не мгновенно, а плавно? Ведь в режиме редактора перерисовка не постоянная.
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33


Вернуться в Editor

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

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