NavMesh не работает как надо
Делаю битву с боссом в юнити. Босс с помощью NavMesh должен перемещаться в сторону игрока.
Когда он подходит близко к игроку, то начинается полная жесть — он с бешеной скоростью летает вокруг игрока:
У босса есть
— коллайдер, чтобы фиксировать, когда игрок в него стреляет
— NavMeshAgent для перемещения в сторону игрока
— триггер внизу, при соприкосновении с которым игрок будет считаться убитым
Как сделать, чтобы босс не наклонялся, находясь близко к игроку?
по описанию сложно понять суть проблемы
но как вариант :
1. использовать на игроке компонент Nav Mesh Obstacle
2. не использовать NavMesh Agent для непосредственного движения а только для расчетов пути
Вполне возможно ты не тормозишь агент вовремя и он тащит весь объект на коллайдер игрока, а так как на объекте тоже есть коллайдер и он не помечен как триггер, выходит что физический движок пытается «вытолкнуть коллайдер босса из коллайдера игрока». Но странно что кинематический ригидбоди так себя не ведет он не является динамическим физическим объектом как таковым. В любом случае мне кажется проблема именно из за того что агент тащит боса на игрока без какого либо оффсета расстояния между ними.
Еще не видна структура самого объекта босса. Может быть у тебя риг анимация, а босс натянут не верно на кости из-за этого такие казусы вполне возможны
Кажется понял, в чем дело. Я Stopping Distance в скрипте и компоненте NavMeshAgent устанавливал в 5, а нужно было сделать 0. Потому что когда было 5, босс не мог подойти к игроку, но скрипт его все-равно к нему толкал. Вот скрипт, если что
В общем, теперь заработало, всем спасибо)
Новость для меня =) буду знать что нав меш сходит с ума если таскать объект скриптом поперек его мнения. Хотя такие казусы бывали с аниматором, когда управление движением отдавали ему, одновременно с агентом
Источник
Navmeshagent unity не работает
Ошибка с NavMesh agent в unity
| Core | Дата: Суббота, 07 Марта 2020, 01:58 | Сообщение # 1 |
| | По зарубежному туториалу, пытался добавить себе в игру ходячего зомбя. Взял нужные префабы из его исходника, и залил себе на сцену. Подключил скрипты — выдает ошибку: using System.Collections; public class AIExample : MonoBehaviour < public FirstPersonController fpsc; private bool isAware = false; Источник Не могу получить доступ к компоненту NavMeshAgentПомощь в написании контрольных, курсовых и дипломных работ здесь. Получить доступ к компоненту на форме Как из дочерней формы получить доступ к компоненту родительской? Как получить доступ к компоненту на форме из другого класса Не могу получить доступ к папке Решениене могу получить доступ к phpmyadmin Не могу получить доступ к винчестеру Не могу получить доступ к серверу Источник NavMeshAgent работает некорректноВсем привет. В общем сделал юнитов с NavMeshAgent. Задаю им SetDestination (target). В чём может быть проблема? Помощь в написании контрольных, курсовых и дипломных работ здесь. Управление NavMeshAgent NavMeshAgent не реагирует NavMeshAgent. Как можно совместить в коде NMA и воспроизведения анимации? Некорректно работает управление Некорректно работает Pinch Zoom OnMouseDown работает некорректно игра шашки Улетают мобы, NavMeshAgent, Unity3d Источник Unity не обновляет пункт NavMeshAgent в сопрограммеЯ работаю над сценарием AI в Unity 5, который в основном построен из сопрограмм для перемещения объекта AI в моей игре. Это действительно работает очень хорошо и независимо от этого зависит от кадра. Я пытаюсь избежать загромождения функции Update класса. Тем не менее, я пытаюсь создать функцию wander, где AI зависает и случайно выбирает пару Vector3 в области путевой точки и перемещается к каждому из них. После этого ИИ должен перейти к следующей путевой точке и сделать то же самое в бесконечности в основном. Обнаружение столкновений и все это относится к более поздним частям. Сначала я хочу, чтобы навигационная часть была исправлена. Если я поменяю функцию wander с помощью функции idle в nextWaypoint , все будет работать так, как ожидалось, но этот бит никогда не будет работать: Это немного тестового кода (вручную устанавливая только 1 позицию, чтобы перейти к point[0] , но он никогда не подойдет к этому месту назначения. SetDestination никогда не будет обновляться до тех точек, которые я хочу установить. Я пробовал вычислять пути ( NavMeshPath) впереди, и все, кроме пути назначения, не изменятся или не будут сброшены достаточно странно. У меня также был цикл while (float.Epsilon в функции wander , но без везения, поскольку он останется в этом цикле навсегда, так как нет пути для перехода. Я мог бы здесь что-то упустить, иначе моя логика в этом случае не так. Надеюсь, кто-то может дать мне небольшой толчок или, возможно, дополнительные опции для отладки, потому что я понятия не имею, почему пункт назначения не обновляется в моей функции блуждания. Источник |