WEBVTT 00:00:00.361 --> 00:00:03.180 En Unity cualquier escena con un Navmesh puede fácilmente 00:00:03.180 --> 00:00:05.180 ser navegada por un game object 00:00:05.180 --> 00:00:07.180 con un componente navmesh agent. 00:00:08.527 --> 00:00:10.527 Aquí nosotros tenemos una escena en Unity. 00:00:10.527 --> 00:00:13.137 La escena ya tiene un navmesh bake. 00:00:14.358 --> 00:00:16.973 La escena también necesita un game object vacío 00:00:16.973 --> 00:00:19.327 que será el objetivo de nuestra navegación. 00:00:21.088 --> 00:00:23.715 Finalmente hay una cápsula la cual nosotros 00:00:23.715 --> 00:00:25.715 aplicaremos a nuestro navmesh agent también. 00:00:26.148 --> 00:00:29.717 La capsula tiene un SampleAgentScript adjunto. 00:00:30.286 --> 00:00:33.008 Este script tiene una variable publica Target 00:00:33.008 --> 00:00:35.880 la cual ya está configurada a nuestro game object vacío 00:00:35.880 --> 00:00:37.880 llamado Target. 00:00:38.842 --> 00:00:40.842 Para agregar un navmesh agent 00:00:40.842 --> 00:00:43.111 haga click en el botón Add Componente 00:00:43.111 --> 00:00:45.409 en la vista del inspector y seleccione 00:00:45.409 --> 00:00:47.983 Navigation - NavMesh Agent. 00:00:50.168 --> 00:00:52.168 El agente tiene varios ajustes los cuales 00:00:52.168 --> 00:00:54.835 nosotros podemos modificar para cambiar su comportamiento. 00:00:55.438 --> 00:00:58.580 El Radius representa el radio del agente. 00:00:58.580 --> 00:01:02.183 Mientras que la Speed es la velocidad máxima del agente. 00:01:03.212 --> 00:01:05.212 La Acceleration es qué tan rápido el 00:01:05.212 --> 00:01:07.029 agente va a acelerar. 00:01:07.395 --> 00:01:09.943 Y la Angular Speed es qué tan rápido 00:01:09.943 --> 00:01:11.943 el agente puede girar. 00:01:12.769 --> 00:01:14.769 La propiedad Stopping Distance 00:01:14.769 --> 00:01:16.769 representa la distancia desde el objetivo 00:01:16.769 --> 00:01:19.368 de que el agente va a comenzar a des-acelerar 00:01:21.301 --> 00:01:23.824 Auto Traverse Off Mesh Links 00:01:23.824 --> 00:01:25.824 dicta si sí o no el agente va a 00:01:25.824 --> 00:01:28.482 utilizar off mesh links (Enlaces Off-mesh) de manera automática. 00:01:29.328 --> 00:01:31.328 Más información acerca de los off mesh links (enlaces off-mesh) 00:01:31.328 --> 00:01:33.666 pueden ser encontradas en la lección vinculada abajo. 00:01:35.521 --> 00:01:37.521 Auto Braking determina si el agente 00:01:37.521 --> 00:01:40.128 va a frenar cuando se acerca a su destino. 00:01:40.733 --> 00:01:43.155 Dejando esto marcado va a parar el agente 00:01:43.155 --> 00:01:45.155 de sobre-disparar el objetivo. 00:01:46.405 --> 00:01:48.405 Auto Repath va a permitirle al agente 00:01:48.405 --> 00:01:50.405 re-construir su camino si 00:01:50.405 --> 00:01:52.926 su camino actual se vuelve invalido. 00:01:53.933 --> 00:01:57.088 La propiedad Height es la altura del agente. 00:01:57.685 --> 00:02:00.555 El Base Offset es el desfase vertical 00:02:00.555 --> 00:02:02.555 del collider del agente. 00:02:04.264 --> 00:02:06.209 El Obstacle Avoidance Type 00:02:06.209 --> 00:02:08.209 tiene varias opciones. 00:02:08.209 --> 00:02:11.781 Entre mayor cantidad, el avoidance (evasión) es más precisa. 00:02:11.781 --> 00:02:15.007 En cantidad menores, el avoidance (evasión) es más eficiente. 00:02:16.674 --> 00:02:18.674 La avoidance priority (prioridad de evasión) determina qué 00:02:18.674 --> 00:02:21.421 agentes tienen prioridad cuando navegan. 00:02:22.018 --> 00:02:25.473 Los agentes con una alta prioridad debería tener un numero menor. 00:02:26.740 --> 00:02:29.847 Finalmente la propiedad NavMesh Walkable 00:02:29.847 --> 00:02:31.847 le dice al agente qué capas de 00:02:31.847 --> 00:02:34.082 navegación pueden atravesar. 00:02:34.791 --> 00:02:37.459 Para más información acerca de capas de navegación 00:02:37.459 --> 00:02:41.404 ver la lección acerca de navmesh baking vinculada abajo. 00:02:42.446 --> 00:02:44.446 Vale la pena tener en cuenta que mientras nosotros podemos 00:02:44.446 --> 00:02:46.030 cambiar estas propiedades, 00:02:46.030 --> 00:02:48.460 para lograr un rango grande de efectos 00:02:48.460 --> 00:02:52.408 las propiedades default van a funcionar para la mayoría de situaciones. 00:02:53.783 --> 00:02:55.783 Una vez el componente navmesh agent 00:02:55.783 --> 00:02:57.783 es aplicado y configurado 00:02:57.783 --> 00:03:00.473 nosotros solo necesitamos decirle a dónde ir. 00:03:02.699 --> 00:03:05.366 En nuestro SampleAgentScript 00:03:05.366 --> 00:03:07.824 nosotros podemos ver que nosotros primero declaramos una variable 00:03:07.824 --> 00:03:12.181 de tipo NavMeshAgent llamado Agent. 00:03:13.848 --> 00:03:17.631 En el método Start nosotros obtenemos una referencia a nuestro navmesh agent 00:03:17.631 --> 00:03:20.092 y lo almacenamos en nuestra variable agent 00:03:20.092 --> 00:03:23.043 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 00:03:26.846 --> 00:03:29.445 nosotros utilizamos el método Set Destination 00:03:29.445 --> 00:03:31.910 de la clase NavMeshAgent. 00:03:32.487 --> 00:03:35.302 Éste método lee un solo vector3. 00:03:35.996 --> 00:03:40.526 En esta instancia nosotros vamos a llamar el método SetDestination 00:03:40.526 --> 00:03:44.807 al escribir Agent.SetDestination. 00:03:46.057 --> 00:03:49.647 Luego en el paréntesis nosotros vamos a escribir 00:03:49.647 --> 00:03:51.885 target.position. 00:03:52.411 --> 00:03:54.900 Esto le dice a nuestro agente en moverse hacia 00:03:54.900 --> 00:03:56.900 el game object objetivo. 00:03:59.066 --> 00:04:01.829 De vuelta en Unity nosotros podemos correr nuestra escena. 00:04:02.496 --> 00:04:05.785 Nosotros vamos a notar inmediatamente que la cápsula game object 00:04:05.785 --> 00:04:08.343 comienza a moverse y atravesar nuestro nivel. 00:04:09.079 --> 00:04:12.195 La capsula va a eventualmente alcanzar nuestro game object objetivo 00:04:12.195 --> 00:04:14.195 y va a llegar a nuestra parada.