-
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.