Выбор своих вспомогательных объектов в редакторе

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

Выбор своих вспомогательных объектов в редакторе

Сообщение Syberex 07 май 2012, 02:16

Делаю вейпоинты для поиска пути, это просто объекты пустышки со сферой коллайдером. Чтобы они были все видны, рисую их Gizmos.DrawWireSphere в редакторе. Вопрос как сделать их выбор по клику мыши :-\
Обрабатывать событие типа OnMouseDown, пускать луч?

И второе:
Создаю вейпоинт по кнопке :) - пустой го + коллайдер + скрипт, потом делаю его активным в инспекторе
Selection.activeTransform = go1.transform;
после чего в инспекторе вижу только трансформацию ... что еще надо или как его апдейтнуть?
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Выбор своих вспомогательных объектов в редакторе

Сообщение DDDENISSS 20 май 2012, 13:44

1. Кажется в Gizmos надо текстуру нарисовать и тогда на нее можно будет жать. Не знаю есть ли лучше способ, чтобы не рисовать текстуру.
2. Может надо Selection.activeObject = myObject.
Аватара пользователя
DDDENISSS
UNIверсал
 
Сообщения: 439
Зарегистрирован: 11 сен 2011, 20:33

Re: Выбор своих вспомогательных объектов в редакторе

Сообщение Syberex 01 июл 2012, 03:56

Ответ на мой второй вопрос:
Синтаксис:
Используется csharp
        GameObject go1 = new GameObject("WayPoint");
        Selection.objects = new GameObject[] { go1 };
 


А первый вылился в - как получить клик и позицию мыши на экране? Пол ночи в справке и начинаю считать это невозможным ~x(
Неужели к ней можно подобраться только через GUI? Рисовать текстуру не интересно ...
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Выбор своих вспомогательных объектов в редакторе

Сообщение Syberex 26 июл 2012, 01:11

Поискал на офф сайте про позицию мыши в окне редактора сцены, нашел тоько вопросы без ответов:

Mouse position in Scene View Editor!

Mouse position in Scene view(Design time no real time!!!)

Detecting what mouse clicked on the scene editor window
В последней ссылке у автора вроде как все получилось, попробовал повторить - не нахожу описания функции "void SceneGUI(SceneView sceneview)", Юнька вроде компилит даже - но ниче не работает. Пробовал обрабатывать событие OnSceneGUI в классе от Editor и от Monobehavior (с навешиванием на пустышку в сцене) - ничего...

Блин, бред какой то 8-|
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Выбор своих вспомогательных объектов в редакторе

Сообщение waruiyume 26 июл 2012, 02:27

Синтаксис:
Используется csharp
object hit;
Event e = Event.current;
hit = HandleUtility.RaySnap(HandleUtility.GUIPointToWorldRay(e.mousePosition));
if (hit != null)
                obj.transform.position = ((RaycastHit)hit).point;
 
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Выбор своих вспомогательных объектов в редакторе

Сообщение Syberex 26 июл 2012, 23:38

Клева, спасибо :) ... а в каком событии использовать данный код?
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт


Вернуться в Editor

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

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