En Unity cualquier escena con un Navmesh puede fácilmente ser navegada por un game object con un componente navmesh agent. Aquí nosotros tenemos una escena en Unity. La escena ya tiene un navmesh bake. La escena también necesita un game object vacío que será el objetivo de nuestra navegación. Finalmente hay una cápsula la cual nosotros aplicaremos a nuestro navmesh agent también. La capsula tiene un SampleAgentScript adjunto. Este script tiene una variable publica Target la cual ya está configurada a nuestro game object vacío llamado Target. Para agregar un navmesh agent haga click en el botón Add Componente en la vista del inspector y seleccione Navigation - NavMesh Agent. El agente tiene varios ajustes los cuales nosotros podemos modificar para cambiar su comportamiento. El Radius representa el radio del agente. Mientras que la Speed es la velocidad máxima del agente. La Acceleration es qué tan rápido el agente va a acelerar. Y la Angular Speed es qué tan rápido el agente puede girar. La propiedad Stopping Distance representa la distancia desde el objetivo de que el agente va a comenzar a des-acelerar Auto Traverse Off Mesh Links dicta si sí o no el agente va a utilizar off mesh links (Enlaces Off-mesh) de manera automática. Más información acerca de los off mesh links (enlaces off-mesh) pueden ser encontradas en la lección vinculada abajo. Auto Braking determina si el agente va a frenar cuando se acerca a su destino. Dejando esto marcado va a parar el agente de sobre-disparar el objetivo. Auto Repath va a permitirle al agente re-construir su camino si su camino actual se vuelve invalido. La propiedad Height es la altura del agente. El Base Offset es el desfase vertical del collider del agente. El Obstacle Avoidance Type tiene varias opciones. Entre mayor cantidad, el avoidance (evasión) es más precisa. En cantidad menores, el avoidance (evasión) es más eficiente. La avoidance priority (prioridad de evasión) determina qué agentes tienen prioridad cuando navegan. Los agentes con una alta prioridad debería tener un numero menor. Finalmente la propiedad NavMesh Walkable le dice al agente qué capas de navegación pueden atravesar. Para más información acerca de capas de navegación ver la lección acerca de navmesh baking vinculada abajo. Vale la pena tener en cuenta que mientras nosotros podemos cambiar estas propiedades, para lograr un rango grande de efectos las propiedades default van a funcionar para la mayoría de situaciones. Una vez el componente navmesh agent es aplicado y configurado nosotros solo necesitamos decirle a dónde ir. En nuestro SampleAgentScript nosotros podemos ver que nosotros primero declaramos una variable de tipo NavMeshAgent llamado Agent. En el método Start nosotros obtenemos una referencia a nuestro navmesh agent y lo almacenamos en nuestra variable agent utilizando la función GetComponent. 69 00:03:24,370 --> 00:03:26,846 Con el propósito de decirle a nuestro agente a dónde ir nosotros utilizamos el método Set Destination de la clase NavMeshAgent. Éste método lee un solo vector3. En esta instancia nosotros vamos a llamar el método SetDestination al escribir Agent.SetDestination. Luego en el paréntesis nosotros vamos a escribir target.position. Esto le dice a nuestro agente en moverse hacia el game object objetivo. De vuelta en Unity nosotros podemos correr nuestra escena. Nosotros vamos a notar inmediatamente que la cápsula game object comienza a moverse y atravesar nuestro nivel. La capsula va a eventualmente alcanzar nuestro game object objetivo y va a llegar a nuestra parada.