Muchas veces en Unity usted va a necesitar conectar
2 navmeshes juntos para permitirle a los personajes
moverse entre ellos.
Por ejemplo, usted quiere permitirle
a un personaje que salte sobre una brecha en el suelo
o saltar desde una altura elevada.
Nosotros podemos lograr este efecto utilizando Off mesh links (enlaces off-mesh).
Off mesh links son caminos
que conectan piezas de un navmesh
para que el agente navmesh pueda atravesarlas.
Para más información acerca de los navmesh agents
ver la lección vinculada abajo.
Nosotros podemos crear off mesh links de dos maneras.
Nosotros podemos hacerlo ya sea permitiéndole a Unity generarlas de manera automática
o nosotros podemos manualmente colocarlas con el
componente off mesh link.
Aquí nosotros tenemos una escena que tiene una cápsula
con un navmesh agent adjunto.
La cápsula también tiene un script
que hará que el agente se mueva hacia
un game object objetivo.
Como usted puede ver el game object objetivo
está al otro lado de la brecha
y es por lo tanto una pieza diferente de navmesh.
Con el fin de lograr a que Unity genere off mesh links (enlaces off mesh) para nosotros
nosotros vamos a necesitar seleccionar todos los
objetos de navegación estáticas en nuestra escena que queremos vínculos entre ellas.
En este caso nosotros vamos a seleccionar las 2 cajas de almacenamiento.
Una vez seleccionado nosotros vamos a querer marcar
la casilla de verificación de generación Off Mesh Link.
Ahora nosotros vamos a querer ir a la
pestaña Bake de la vista de navegación.
Las 2 propiedades que afectan la generación de Off Mesh Link
son Drop Height y Jump Distance.
Drop Height dicta qué tan lejos de una caída
es una distancia aceptable para crear un vinculo.
Por ejemplo, sería razonable que sea capaz
de soltar una caja, pero no un skyscraper.
La Jump Distance determina qué tan lejos de una brecha
un off mesh link puede generarse.
Una vez más, entre mayor sea el número
más lejos un agente puede saltar de un navmesh a otro.
Por defecto estos son configurados a 9
por lo que nosotros vamos a querer configurarlas a algo
que tenga sentido para nuestra escena.
Vale la pena tener en cuenta que con el fin de hacer que Unity
genere Off mesh links usted va a necesitar
desactivar la propiedad Height Mesh.
Cuando haya finalizado configurando sus propiedades
usted simplemente va hacer click en el botón Bake.
Usted va a ver cualquier off mesh link generado
en la vista de escena.
Si nosotros corremos nuestra escena nosotros podemos ver que el agente
ahora es capaz de atravesar la brecha
y alcanzar su destino.
La segunda manera de crear off mesh links
es de manera manual con el componente Off Mesh Link.
Al crear enlaces (links) de esta manera nos da un mejor control
sobre dónde estos son colocados y cómo nosotros podemos interactuar con estos.
Aquí nosotros tenemos la misma escena como antes
excepto nosotros hemos quitado los off mesh links (enlaces off mesh)
y hemos agregado 2 nuevos game objects vacíos
los cuales son nombrados LinkStart y LinkEnd.
Estos serán los game objects
en dónde nosotros creamos un enlace entre ellos.
Para agregar un componente Off Mesh link a un objeto
haga click en el botón Add Component y seleccione
Navigation - Off Mesh Link.
Las primeras 2 propiedades del componente Off mesh link
Start y End requieren los game objects
que van a representar el inicio y el final de nuestro enlace.
Esto significa que el componente no necesita estar
en un objeto que es parte de un enlace.
Aunque organizacionalmente es una buena idea.
El Cost Override es utilizado para ajustar
el costo del enlace para los propósitos de calcular un camino.
Si esta propiedad no es un número positivo
esta será ignorada y el valor por defecto
será utilizado.
Bi Directional dicta si sí o no
un personaje puede atravesar en ambas direcciones
a través de un enlace.
La propiedad Activated le permite a usted
prender un enlace o apagarlo.
La Auto Update Positions determina si sí o no el enlace
será actualizado si cualquiera de
los transforms de Start (inicio) y end (final) son modificados.
La Navigation Layer (Capa de navegación) es la capa
a la cual los off mesh links pertenecen
Para más información acerca de las Navigation Layers
ver la lección acerca del NavMesh Baking vinculada abajo.
Vale la pena tener en cuenta que una vez usted haya configurado
su componente off mesh link
usted no necesita re-bake su navmesh.
El enlace va a ser automáticamente visible en el navmesh
cuando usted abra la vista de navegación.
Nosotros ahora podemos correr nuestra escena y ver
el agente moverse a través de nuestro
nuevo enlace off mesh (Off mesh link) creado.