Страница 1 из 1

Использование нескольких коллайдеров

СообщениеДобавлено: 02 дек 2010, 18:53
Maldor
Недавно возник такой вопрос. Вот есть у нас, к примеру, юнит. И надо нам чтоб он врагов на определенном расстоянии замечал.
Для этого мы вешаем на него коллайдер и по OnTriggerEnter вешаем встречу с врагом. И все хорошо.
А вот теперь надо чтобы он замечал одних юнитов на одном расстоянии, а других юнитов(или вообще какой-то левый объект) на другом. С одной стороны было бы удобно повесить на него еще один коллайдер с другим радиусом и отлавливать пересечения с ним. Только нельзя на один обьект несколько коллайдеров повесить.
Можно конечно создать пустые префабы со скриптом и коллайдером, но это как-то неспортивно.
Как вы считаете, как лучше поступить в данной ситуации?

Re: Использование нескольких коллайдеров

СообщениеДобавлено: 02 дек 2010, 19:23
Golandez
На персонажа повесить дочерный ГО пустышку с коллайдером произвольного размера и обращаться к нему.

Re: Использование нескольких коллайдеров

СообщениеДобавлено: 02 дек 2010, 19:31
Maldor
Есть ли другие варианты. Предложенный Вами вариант мы сейчас и используем.

Re: Использование нескольких коллайдеров

СообщениеДобавлено: 02 дек 2010, 19:31
Zaicheg
Повесить несколько коллайдеров на один ГО можно, если они разного типа. Но не советую. И отдельно с них срабатывания не отловить.

Можно в вашем случае обойтись и одним коллайдером. Делаете самый большой из необходимых, а затем для объектов, вошедших в него, проверяете дистанцию. Это если у вашего субъекта все "зоны видимости" одинаковой формы.

Re: Использование нескольких коллайдеров

СообщениеДобавлено: 02 дек 2010, 19:41
Maldor
Тут вопрос в потреблении ресурсов. Отслеживание события гораздо менее ресурсоемко чем постоянный трекинг в Update.
Можно, конечно зарегистрировать собственный Event и поднимать его при сближении на определенную дистанцию, но вариант с несколькими коллайдерами, имхо предпочтительней.

Re: Использование нескольких коллайдеров

СообщениеДобавлено: 02 дек 2010, 20:23
Zaicheg
Проверка дистанции только для некоторых типов объектов и только когда они в триггере. И вряд ли дочерний объект со скриптом и коллайдером бесплатен. Прогоните тесты и посмотрите, сколько наэкономите и сэкономите ли. Может, даже и на спички не хватит.

Re: Использование нескольких коллайдеров

СообщениеДобавлено: 02 дек 2010, 22:16
Kann
Maldor писал(а):Тут вопрос в потреблении ресурсов. Отслеживание события гораздо менее ресурсоемко чем постоянный трекинг в Update.

пользуйте Coroutine вместо Update, зачем вам в каждом кадре расстояние мерить ?

Re: Использование нескольких коллайдеров

СообщениеДобавлено: 02 дек 2010, 22:44
Maldor
Это хорошая идея. Спасибо.