Skip to content

Files

Failed to load latest commit information.

Latest commit

 Cannot retrieve latest commit at this time.

History

History

pathfinding

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Pathfinding

Set of components for pathfinding along a nav mesh, using PatrolJS.

  • nav-mesh: Assigns model from the current entity as a navigation mesh for the pathfinding system. A navigation mesh is not the same as visible terrain geometry. See below.
  • nav-agent: Adds behaviors to an entity allowing it to navigate to any reachable destination along the nav mesh.

Creating a nav mesh

Blog post.

Setting a destination

Controllers can be activated to begin moving their entity toward a destination. Example:

<!-- NPC -->
<a-entity id="npc"
          gltf-model="npc.gltf"
          nav-agent="speed: 1.5"></a-entity>

<!-- Nav Mesh -->
<a-entity gltf-model="navmesh.gltf"
          nav-mesh></a-entity>

<!-- Scene -->
<a-entity gltf-model="scene.gltf"></a-entity>
var npcEl = document.querySelector('#npc');
npcEl.setAttribute('nav-agent', {
  active: true,
  destination: e.detail.intersection.point
});

Events

The nav-agent component will emit two events:

  • navigation-start: Entity beginning travel to a destination.
  • navigation-end: Entity has reached destination.

Important notes

This implementation is meant as a proof-of-concept, and doesn't have all the features and polish of game engine navigation. Currently missing:

  • Smooth rotation when navigating around corners.
  • Dynamic obstacles, like mobile props and NPCs.
  • Multiple nav meshes and/or levels.