Unity 3D Game Engine – Pathfinding – NavMesh Agent
1. Create a NavMesh
2. Create EmptyObject, name it ‘targetNavigation’
3. Create a Sphere, Inspector> TOP RIGHT uncheck ‘Static’, name it ‘enemy’> Inspector> ‘Add Component’> Navigation> NavMeshAgent, setup:
– Radius: l’ingombro dell’agente
– Speed: massima velocità dell’agente (utile per i giochi di corsa!)
– Acceleration: accelerazione massima dell’agente
– Angular Speed: velocità con la quale è in grado di girare
– Stopping Distance: distanza alla quale inizia a rallentare in prossimità di ‘targetNavigation’
– Auto Traverse Off Mesh Link:
– Auto Braking: se attivo l’agente si ferma automaticamento al raggiungimento di ‘targetNavigation’
– Auto Repath: se attivo l’agente ricalcola il percorso se quello precedente non è più valido
– Height: l’altezza dell’agente
– Base Offset: offset verticale del collider dell’agente
– Obstacle Aviodance Type: High Quality – Low Quality – precisione del calcolo per schivare gli ostacoli (meno è accurato, meno risorse occupa)
– Avoidance Priority: priorità nella navigazione, un personaggio con priorità 1 avrà la precedenza (passa prima) rispetto un personaggio con priorità 2
– NavMesh Walkable: quale ‘Navigation Layer’ può attraversare
4. Select the Sphere and assign:
SimpleAgentScript.js
#pragma strict public var target : Transform; // inside Inspector assign the Target object private var agent: NavMeshAgent; function Start () { agent = GetComponent.<NavMeshAgent>(); } function Update () { agent.SetDestination(target.position); }
Inspector> DRAG AND DROP over variable Target the ‘targetNavigation’ object