Как бы вы сделали зрение NPC врага для stealth маханики?
Пытаюсь понять как реализовать следующую механику для 3D игры:
когда игрок в поле зрения NPC- NPC нападает. Я пытался прикрутить к NPC камеру и реализовать скрипт который реагирует на попадание мешей игрока в поле зрения камеры NPC , но тогда камера NPC игнорирует любые объекты и видит игрока сквозь стены. Как бы вы сделали по умному, поделитесь пж)) не обязательно кодом, можно какими-то советами, чтобы я знал в какую сторону копать. (механика для stealth хоррор игры которую)
Да просто рейкасты кидайте в игрока из глаз нпса, ну только если угол между векторами (направленными вперед от нпс и игрока) не более желаемого угла обзора нпса (ведь он не видит что происходит сзади или сбоку).
Ну и смотрите если рейкасты не упираются в какой нибудь нибудь объект (пропуская прозрачные объекты типа стекол), то значит нпс видит игрока. Ну тут еще нужно несколько проверок сделать такие как например расстояние, позиция игрока допустим в присяди то заметность меньше, какая нибудь характеристика незаметности игрока например, время суток, а точнее освещение, если игрок в тени то заметность хуже, или если он в траве ну и из всех этих факторов уже решайте видит ли нпс или нет.
Не надо это делать "в лоб" как камеру. Решайте этот вопрос геометрически.
Если от врага до игрока небольшое расстояние И игрок попадает в сектор зрения (тоже обычная геометрическая формула) И между игроком и и противником нет стен (вот тут рейкаст) - то он в поле зрения.
Можно конечно чистым рейкастом сделать, или вообще на коллайдерах.