Вопрос до боли простой, но меня завел в ступор.
Есть герой, который в конусе перед собой бьет все цели. Так вот как эти цели собственно отловить? Как вариант можно рейкастить, но мне кажется это извращением, 270 рейкестов не есть ок (по 1 на каждый градус).
Есть менее ресурсозатратные идеи?

Принятый ответ

Ну очень же просто! Это SphereOverlap и чек коллизий!
Колдуется сферка, радиус которой увеличивается. Все что попадает в радиус - подходит.
Далее берем две нормали
  • первая направлена от 1го юнита ко 2му.
  • вторая нормаль - направление атаки 1го юнита
Высчитываем между ними минимальный угол - если он меньше угла атаки - цель подходит.
3
27
9 лет назад
Отредактирован Devion
3
Ну очень же просто! Это SphereOverlap и чек коллизий!
Колдуется сферка, радиус которой увеличивается. Все что попадает в радиус - подходит.
Далее берем две нормали
  • первая направлена от 1го юнита ко 2му.
  • вторая нормаль - направление атаки 1го юнита
Высчитываем между ними минимальный угол - если он меньше угла атаки - цель подходит.
Принятый ответ
0
25
9 лет назад
0
Насчет сферы идеи хорошая. Получилось еще нагуглить другой способ:
В максе сделать нужную модель, повесить в юнити на нее меш колайдер и получать коллизию с этой модели.
Остается придумать что быстрее.

Только что проверил.
Все таки через сферу будет быстрее. Спасибо за подсказку.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.