Diferencia entre revisiones de «Unity NavMesh»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 1: Línea 1:
 +
=Introducción=
 +
 +
* Más información en:
 +
:* https://docs.unity3d.com/Manual/Navigation.html
 +
:* https://docs.unity3d.com/Manual/nav-BuildingNavMesh.html
 +
 +
 +
* Uno de los problemas a los que nos podemos enfrentar al desarrollar un juego es de dotar de inteligencia a los enemigos y que sean capaces de 'esquivar' los obstáculos de un escenario mientras intentan coger a nuestro protagonista.
 +
: Podríamos intentar hacerlo nosotros, ya que vimos [https://wiki.cifprodolfoucha.es/index.php?title=UNITY_Operaciones_sobre_objetos_3D#Vector_direcci.C3.B3n en esta Wiki el uso del vector dirección] y podríamos hacer que los enemigos calcularan dicho vector con respecto al jugador y que se movieran hacia él.
 +
: El problema que tendríamos es que si existen obstáculos entre el enemigo y el jugador, quedarían atrapados, como se observa en la siguiente escena:
 +
 +
[[Imagen:Unity3d_navmesh_1.jpg|500px|center]]
 +
 +
: Si tuviéramos que programarlo podría ser muy laborioso.
 +
 +
* Para solucionarlo, Unity ofrece el sistema de navegación inteligente: '''[https://docs.unity3d.com/Manual/Navigation.html Navigation System]'''.
 +
: Este componente va a permitir definir mediante una serie de parámetros que área de nuestra escena es 'caminable' por los enemigos.
 +
: Por ejemplo, podremos definir que las zonas elevadas más de X grados no sean navegables (por tanto serían un muro) o que las bajadas o subidas de desnivel a partir de un tamaño no sean accesibles (formarían otro muro).
 +
 +
: Una vez creado el Navigation, asociamos a cada enemigo un [https://docs.unity3d.com/Manual/nav-BuildingNavMesh.html NavMesh Agent] el cual hará que dicho enemigo vaya 'detrás' del protagonista esquivando los posibles objetos que encuentre por el camino.
 +
 +
 +
<br />
 +
=Navigation=
 +
 +
 +
 +
<br />
 +
=NavMesh Agent=
 +
 +
  
−
* https://docs.unity3d.com/Manual/Navigation.html
 
−
* https://docs.unity3d.com/Manual/nav-BuildingNavMesh.html
 
  
  
  
 
<br> -- [[Usuario:angelfg|Ángel D. Fernández González]] -- (2018).
 
<br> -- [[Usuario:angelfg|Ángel D. Fernández González]] -- (2018).

Revisión del 18:31 29 abr 2019

Introducción

  • Más información en:


  • Uno de los problemas a los que nos podemos enfrentar al desarrollar un juego es de dotar de inteligencia a los enemigos y que sean capaces de 'esquivar' los obstáculos de un escenario mientras intentan coger a nuestro protagonista.
Podríamos intentar hacerlo nosotros, ya que vimos en esta Wiki el uso del vector dirección y podríamos hacer que los enemigos calcularan dicho vector con respecto al jugador y que se movieran hacia él.
El problema que tendríamos es que si existen obstáculos entre el enemigo y el jugador, quedarían atrapados, como se observa en la siguiente escena:
Unity3d navmesh 1.jpg
Si tuviéramos que programarlo podría ser muy laborioso.
  • Para solucionarlo, Unity ofrece el sistema de navegación inteligente: Navigation System.
Este componente va a permitir definir mediante una serie de parámetros que área de nuestra escena es 'caminable' por los enemigos.
Por ejemplo, podremos definir que las zonas elevadas más de X grados no sean navegables (por tanto serían un muro) o que las bajadas o subidas de desnivel a partir de un tamaño no sean accesibles (formarían otro muro).
Una vez creado el Navigation, asociamos a cada enemigo un NavMesh Agent el cual hará que dicho enemigo vaya 'detrás' del protagonista esquivando los posibles objetos que encuentre por el camino.



Navigation


NavMesh Agent


-- Ángel D. Fernández González -- (2018).