Navigation
Core concepts
Generating a Navmesh
Using navigation in gameplay
@Actor()
class AiCharacter extends BaseActor {
private mesh = attach(MeshComponent, {
object: new Mesh(
new BoxGeometry(.5, .5, .5),
new MeshStandardMaterial({color: 0xff0000})
)
})
private navigation = inject(Navigation)
private world = inject(World)
private movementSpeed = .5
onUpdate(deltaTime: number): void {
const player = this.world.findActorByType(Character)
const { success, path } = this.navigation.findPath(this.position, player.position)
if (success) {
const direction = path[1].clone().sub(this.position).normalize()
this.position.addScaledVector(direction, deltaTime * this.movementSpeed)
}
}
}
Last updated