Определение конуса видения в единстве

Я пытаюсь реализовать модель объединения фуражек в единстве.

Мне удалось реализовать рулевое поведение (разделить, выровнять, связать), но в настоящее время я использую фиксированный радиус от агента, чтобы определить его окрестность (по сути, пузырь вокруг агента). Однако мне нужно реализовать конус видения, подобный изображенному на этом рисунке:

зрительная шишка

Я не уверен, как я мог реализовать это в единстве. Может ли кто-нибудь указать мне правильное направление?

Чтобы добавить ясности, я хочу обнаружить все остальные агенты в конусе видения, но я не уверен, как это реализовать. В настоящее время я просто обнаруживаю всех агентов на расстоянии, хотя мне нужно игнорировать агентов, стоящих за тем, кто выполняет обнаружение (как на картинке), я не хочу их визуализировать, просто обнаруживаю агентов в этом определенном районе.

Спасибо

1 ответ

Решение

Обнаружьте всех агентов в круге, а затем проверьте каждый из Vector3.Angle() между transform.forward и направление к агенту.
(направление от вектора A к B- просто BA)

Другие вопросы по тегам