Выделение квадратной рамкой.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Выделение квадратной рамкой.

Сообщение havismat 18 авг 2011, 06:27

Здравствуйте,уважаемые участники форума, подскажите пожалуйста, каким методом лучше реализовать выделение рамкой? Тоесть:

На экране есть множество движущихся объектов, кликаю на один из них мышкой и он оказывается в квадратной/прямоугольной рамке( в зависимости от размеров и формы).

Пробовал вот так:
Синтаксис:
Используется javascript
rect = new Rect(screenPosition.x-100, Screen.height - screenPosition.y-75, width, 10);

        GUI.DrawTexture(rect, ramka, ScaleMode.ScaleAndCrop, false, 5);


Очевидно, что криво и не изящно, да и размеры почти у всех разные,подскажите пожалуйста, как это реализовать правильно?

Заранее благодарен, Михаил.
havismat
UNец
 
Сообщения: 31
Зарегистрирован: 03 авг 2011, 16:13

Re: Выделение квадратной рамкой.

Сообщение Order 18 авг 2011, 08:47

Проще хранить размеры рамки в классе объекта(в скрипте который прикреплен к объекту)...
Добавить rusorder в Skype , _juc4you@mail.ru ;
Платные консультации, программирование ваших проектов Unity3d,C#,IOS,Android.
Скрытый текст:
_ttp://www.youtube.com/watch?v=1m2qTnatSjM&list=UUjcKNvONEUHCILG7QrX1NFg
Order
Старожил
 
Сообщения: 805
Зарегистрирован: 21 фев 2010, 10:34

Re: Выделение квадратной рамкой.

Сообщение havismat 18 авг 2011, 13:25

Спасибо большое, что-то сам не догадался. А саму рамку так и реализовывать через DrawTexture(), нет более удобных/подходящих для этого функций? :-\
havismat
UNец
 
Сообщения: 31
Зарегистрирован: 03 авг 2011, 16:13

Re: Выделение квадратной рамкой.

Сообщение Order 18 авг 2011, 13:56

Попробуй ДравЛайн, не знаю что будет лучше выглядеть..
Добавить rusorder в Skype , _juc4you@mail.ru ;
Платные консультации, программирование ваших проектов Unity3d,C#,IOS,Android.
Скрытый текст:
_ttp://www.youtube.com/watch?v=1m2qTnatSjM&list=UUjcKNvONEUHCILG7QrX1NFg
Order
Старожил
 
Сообщения: 805
Зарегистрирован: 21 фев 2010, 10:34

Re: Выделение квадратной рамкой.

Сообщение Zaicheg 18 авг 2011, 13:57

Можно и мешем с подходящим материалом.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Выделение квадратной рамкой.

Сообщение Neodrop 18 авг 2011, 14:15

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

Re: Выделение квадратной рамкой.

Сообщение havismat 18 авг 2011, 21:23

Сейчас пойду копать как боксом сделать.
А как это делается мешем и в чем должна быть особенность материала?
havismat
UNец
 
Сообщения: 31
Зарегистрирован: 03 авг 2011, 16:13

Re: Выделение квадратной рамкой.

Сообщение Zaicheg 18 авг 2011, 22:36

havismat писал(а):Сейчас пойду копать как боксом сделать.
А как это делается мешем и в чем должна быть особенность материала?

Он должен быть волшебным.
Не знаю, зависит от того, что нужно получить.
Я просто модель-кубик масштабирую с transparent/diffuse и по OnTrigger обрабатываю вошедшие объекты.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Выделение квадратной рамкой.

Сообщение defint 18 авг 2011, 23:09

а если объект не на плоскости? нам мой взгляд выделение необходимо по другому делать, подсвечивание объекта или типа того.
defint
UNIт
 
Сообщения: 94
Зарегистрирован: 10 авг 2009, 12:17

Re: Выделение квадратной рамкой.

Сообщение BUDU_KRATOK 19 авг 2011, 10:57

Имхо достаточно чего-то такого в OnGUI (RTS Generals на Unity3d.com форуме, там же можно найти примеры остальных скриптов):

Синтаксис:
Используется javascript
var width : int = mouseButton1UpPoint.x - mouseButton1DownPoint.x;
                var height : int = (Screen.height - mouseButton1UpPoint.y) - (Screen.height - mouseButton1DownPoint.y);
                var rect : Rect = Rect(mouseButton1DownPoint.x, Screen.height - mouseButton1DownPoint.y, width, height);
                GUI.DrawTexture (rect, selectionTexture, ScaleMode.StretchToFill, true);


Если RTS на плоскости - рейкасты из камеры в точку GetButtonDown и GetButtonUp, сравнивать что попало между хит.поинтами (на плоскость), не учитывая высоту. Юниты в каком-нибудь менеджере (опять же с того проекта, не моё):

Синтаксис:
Используется javascript
private var allUnitsList = new Array();
private var selectedUnitsList = new Array();


А если в объёме - имхо при GetButtonDown после проверки на то, что GetButtonDown!=GetButtonUp (исключить случайный клик) переводить видимые камере юнити в Camera.main.WorldToScreenPoint и проверять так же, но в плоскости камеры. По оптимизации не знаю :(

А если речь идёт о подсветке выбранного юнита масштабируемой рамкой, то тут надо от размеров объекта на экране смотреть и через GUI отрисовывать наверн, не смотрел в эту сторону...
BUDU_KRATOK
UNец
 
Сообщения: 29
Зарегистрирован: 06 авг 2010, 08:29


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 20