jairogarcíarincón

Moviendo al jugador a un punto marcado con el ratón


7.71K

Creación del NavMesh



Lo siguiente que necesitamos es la creación de un mapa o malla de navegación que nos permita saber por qué lugares se puede andar o por qué lugares no.

Para ello, añade al Jugador un NavMesh Agent Component y, en principio, respeta los valores existentes, si bien más adelante puedes experimentar con la velocidad, el radio y la altura para evitar obstáculos, etc.

A continuación, selecciona tanto el Suelo como las Barreras del juego y marca en el Inspector Window la opción Static (arriba a la derecha) para indicar que son objetos que, en principio, no se mueven (son obstáculos).

Es el momento de crear nuestro mapa de navegación. Para ello, abre la ventana Window > AI > Navigation y, en la pestaña Object, selecciona All y asegúrate de que está marcado Navigation Static, Generate OffMeshLinks y seleccionado Walkable como Navigation Area:

1. Navigation Object


Si ahora seleccionas la pestaña Bake y haces clic en Bake, deberías ver una escena similar a esta:

2 Nav Mesh


La zona azul te está indicando por dónde se puede andar y por donde no.

El script del Jugador



Para ver si funciona, vamos a crear y asociar un pequeño script llamado NavJugador al Jugador para que al hacer clic en cualquier lugar del mundo, el Jugador se desplace hacia allá evitando los obstáculos (andando solo por la zona permitida):



Si ahora ejecutas el juego, verás que al hacer clic, el Jugador se desplaza hacia ese punto con una velocidad concreta (que puedes modificar desde el NavMesh Agent).

Habrás apreciado que el Jugador salta buscando la ruta más rápida. Si prefieres que no lo haga, puedes modificar la altura Agent Height de la pestaña Bake de Navigation de modo que sea inferior a la altura de tus obstáculos.


Publicado el 22 de Enero de 2025

unityc#visual studio