Ajustes Bake Avanzados del NavMesh
Creando un NavMesh Obstacle (Obstáculo NavMesh)

Creando un Agente NavMesh

Una vez usted tenga un NavMesh baked para su nivel es tiempo de crear un personaje que pueda navegar la escena. Nosotros vamos a construir nuestro agente prototipo de un cilindro y lo pondremos en movimiento. Esto se hace al utilizar el Componente NavMesh Agent y un script simple.

Primero creemos el personaje:

  1. Cree un cylinder: GameObject > 3D Object > Cylinder.
  2. Las dimensiones por defecto del cilindro (Altura 2 y radio 0.5) son buenas para agentes con forma humanoide, por lo que las dejaremos como están.
  3. Agregue un componente NavMesh Agent: Component > Navigation > NavMesh Agent.

Ahora usted tiene un agente NavMesh simple configurado y listo para recibir comandos!

Cuando usted esté experimentando con un Agente NavMesh, lo más seguro es que usted va a ajustar sus dimensiones para el tamaño del su personaje y la velocidad.

El componente NavMesh Agent maneja ambos el pathfinding (encontra caminos) y el control del movimiento de un personaje. En sus scripts, la navegación se puede manejar tan simple como coger el punto de destino deseado - el Agente NavMesh puede manejar todo desde ahí.

    // MoveTo.cs
    using UnityEngine;
    using System.Collections;
    
    public class MoveTo : MonoBehaviour {
       
       public Transform goal;
       
       void Start () {
          NavMeshAgent agent = GetComponent<NavMeshAgent>();
          agent.destination = goal.position; 
       }
    }

Lo que sigue es que nosotros necesitamos construir un script simple que le permite a usted enviar su personaje al destino especificado por otro Game Object, y una Esfera la cual será el destino a dónde será movido.

  1. Cree el nuevo C# script (MoveTo.cs) y remplace su contenido con el script de arriba.
  2. Asigne el script MoveTo al personaje que usted acaba de crear.
  3. Cree la sphere, esta será el destino a dónde se moverá el agente.
  4. Mueva la sphere (esfera) lejos del personaje a una ubicación que esté cerca a la superficie del NavMesh.
  5. Seleccione el personaje, ubique la script MoveTo, y asigne la Sphere (esfera) a la propiedad Goal.
  6. Press Play (Presione Play-reproduzca); usted debería ver la navegación del agente a la ubicación de la sphere (esfera).

Para resumirlo, en su script, usted va a necesitar obtener una referencia al componente del NavMesh Agent y luego poner al agente en movimiento, usted simplemente necesita asignar una posición a su propiedad destination. Los Cómos de la Navegación van a darle más ejemplos acerca de cómo resolver los escenarios comunes del gameplay con el NavMesh Agent.

Lecturas adicionales

Ajustes Bake Avanzados del NavMesh
Creando un NavMesh Obstacle (Obstáculo NavMesh)