Diferencia entre revisiones de «Unity NavMesh»
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= | ||
| + | |||
| + | |||
| − | |||
| − | |||
<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:
- 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.
-- Ángel D. Fernández González -- (2018).