Выделение рамкой - Форум Игроделов
Сб, 27 Апр 2024, 14:01 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Выделение рамкой (в стратегии)
Выделение рамкой
VolkOrievithДата: Ср, 16 Окт 2013, 15:51 | Сообщение # 1
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
Как на JS сделать выделение рамкой: На экране рисуешь мышкой рамку, и те объекты, которые попали в рамку, заменяли все объекты на переменной
Код
var SelectedUnits : GameObject[];
на определённом объекте. Как реализовать проверку на поподание объектов в рамку? Чето я сам только длинный код придумал: проверять позицию на экране всех объектов определенного тега. Нет-ли более коротких способов?

Добавлено (16 Окт 2013, 15:51)
---------------------------------------------
Ну че?? Никто не знает?? Какой-то не дееспособный форум.

 
СообщениеКак на JS сделать выделение рамкой: На экране рисуешь мышкой рамку, и те объекты, которые попали в рамку, заменяли все объекты на переменной
Код
var SelectedUnits : GameObject[];
на определённом объекте. Как реализовать проверку на поподание объектов в рамку? Чето я сам только длинный код придумал: проверять позицию на экране всех объектов определенного тега. Нет-ли более коротких способов?

Добавлено (16 Окт 2013, 15:51)
---------------------------------------------
Ну че?? Никто не знает?? Какой-то не дееспособный форум.


Автор - VolkOrievith
Дата добавления - 16 Окт 2013 в 15:51
seamanДата: Ср, 16 Окт 2013, 16:45 | Сообщение # 2
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Создаешь Bounds по точкам выделения и проверяешь для всех объектов
Код
List<Transform> selected = new List<Transform>();
Transform[] allObject = FindObjectsOfType(typeof(Transform)) as Transform[];
foreach(Transform tr in allObject)
{
     if(Bounds.Contains(tr.position)) selected.Add(tr);
}
 
СообщениеСоздаешь Bounds по точкам выделения и проверяешь для всех объектов
Код
List<Transform> selected = new List<Transform>();
Transform[] allObject = FindObjectsOfType(typeof(Transform)) as Transform[];
foreach(Transform tr in allObject)
{
     if(Bounds.Contains(tr.position)) selected.Add(tr);
}

Автор - seaman
Дата добавления - 16 Окт 2013 в 16:45
VolkOrievithДата: Сб, 19 Окт 2013, 14:11 | Сообщение # 3
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
seaman, Спасибо. Вроде это мне подходит, но с этими операторами я не знаком, поскольку самоучка, а "FindObjectsOfType" некогда не использовал, и не знаю как работает. Не могли бы вы объяснить?
Цитата seaman ()
Код

selected.Add(tr);

- это добавление нового к тому, что я назвал "var SelectedUnits : GameObject[];"?
Цитата seaman ()
Создаешь Bounds по точкам выделения
- это я понял.
Цитата seaman ()
проверяешь для всех объектов
- а это нет.

Добавлено (19 Окт 2013, 14:11)
---------------------------------------------
Все. Сделал. Сначала нахожу все объекты со скриптом AIUnit, затем из них отбираю все союзные. После чего при выделении перевожу координаты всех своих в 2D на экране и проверяю, попали-ли они в рамку.
seaman, благодарю за подачу на счет

Цитата seaman ()
FindObjectsOfType


Сообщение отредактировал VolkOrievith - Ср, 16 Окт 2013, 17:05
 
Сообщениеseaman, Спасибо. Вроде это мне подходит, но с этими операторами я не знаком, поскольку самоучка, а "FindObjectsOfType" некогда не использовал, и не знаю как работает. Не могли бы вы объяснить?
Цитата seaman ()
Код

selected.Add(tr);

- это добавление нового к тому, что я назвал "var SelectedUnits : GameObject[];"?
Цитата seaman ()
Создаешь Bounds по точкам выделения
- это я понял.
Цитата seaman ()
проверяешь для всех объектов
- а это нет.

Добавлено (19 Окт 2013, 14:11)
---------------------------------------------
Все. Сделал. Сначала нахожу все объекты со скриптом AIUnit, затем из них отбираю все союзные. После чего при выделении перевожу координаты всех своих в 2D на экране и проверяю, попали-ли они в рамку.
seaman, благодарю за подачу на счет

Цитата seaman ()
FindObjectsOfType

Автор - VolkOrievith
Дата добавления - 19 Окт 2013 в 14:11
Форум Игроделов » UNITY3D » СКРИПТИНГ » Выделение рамкой (в стратегии)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024