Написал небольшую статью о реализации отталкивания в Unity3d с использованием физики NavMesh😎😎😎 Всем привет! 😁😁😁 Реализация толчка в Unity3d с использованием NavMeshAgent. Если вкратце, то физический движок RigidBody и NavMesh абсолютно несовместимы. При одновременном использовании, объект ведет себя некорректно. (а точнее начинает получать два ускорения, чаще всего в разные стороны). Разработчики советуют их не совмещать по возможности, или ставить галочку isKinematic в Rigidbody, а в NavMesh использовать NavMeshObstacle (ИИ на котором весит NavMeshAgent будет обходить объект на котором есть Obstacle). но тут есть проблема - Obstacle заставляет агента ИИ менять позицию на позицию рядом с объектом, то есть с какой бы скоростью вы не столкнули объект с агентом ИИ, он просто подвинется на ближайшую точку рядом с объектом и пойдет дальше. А наша цель именно оттолкнуть Агента ИИ(обращаю внимание, что именно его, а не объект) от позиции на которой он был, в направлении движения объекта, который с ним столкнулся. (то есть передать некую силу толчка Агенту ИИ, что бы он передвинулся по вектору движения объекта, который с ним столкнулся) Делается это следующим образом:

Теги других блогов: программирование