Jump to content
lcnvdl

Simple y sencillo Pathfinding :/

Recommended Posts

Gente, buenas!

 

Les escribo porque la verdad no encuentro una solución. Descargué e intenté usar varias soluciones de Pathfinding para mi juego, pero ninguna me funciona bien y no entiendo  por qué. Necesito un simple mecanismo de Pathfinding A*, para Grids, ni siquiera en 3D. Puede ser en 2D.

 

Alguien conoce alguna solución o alguna librería que le haya dado resultados?

 

Muchas gracias,

 

Saludos!

Share this post


Link to post
Share on other sites

Porque le Navmesh no me permite desactivar ciertas zonas de forma dinámica o ignorar objetos específicos, está muy bueno pero para mi juego no me sirve. Además, al usar navmesh gira muy lento no me gusta el movimiento que tiene.

Share this post


Link to post
Share on other sites

Gira muy lento? No se que sistema usas, pero yo con Draugar hacia girar a los enemigos a la velocidad que yo quería.

Edited by mrpacogp

Share this post


Link to post
Share on other sites

Muchas gracias a todos por las respuestas!

 

Al final terminé implementando MeshAgent, anda bastante bien. Ahora tengo un problema, esquiva bien un obstáculo pero si le coloco 3 obstáculos juntos el player se enloquece, se los choca y queda trabado en vez de esquivarlos. 

 

Les muestro un video. http://unity.lucianorasente.com/tmp/moba/moba-problem.html

 

Qué puede ser?

 

Para el player uso MeshAgent, y para los obstáculos Mesh Obstacle.

 

Posible solución (pero no me termina de cerrar)

Colocar torres como Static (voy a seguir teniendo problemas igual con otros Obstacles.

1. Si coloco las torres como "Static" o "Baked", al romperse me van a seguir impidiendo pasar por la zona en la que están, aunque de esta forma sí las esquiva.

2. Si coloco las torres como "Static" o "Baked", al dirigirme a una de ellas en vez de ir derecho, es como que va por un camino raro para esquivarla entonces no va a atacarla como debería.

Share this post


Link to post
Share on other sites
Guest

Hola otra vez, ¿que unity usas?, si usas unity 5, (no se si las versiones pro anteriores lo tenian) Hay un componente como el NavMeshAgent, que es navMeshObstacle, basicamente consiste en lo siguiente, bakeas tu maya de navegación, con los objetos que no se van a mover ni ser destruidos como "static ", despues creas el prefab de la torreta con el NavMeshObstacle, y si todo sale bien tu personaje esquivara la torre de forma dinamica, es decir aunque se mueva, yo lo he usado muy poco, y mas a nivel de prueba que para implementarlo realmente, pero lo poco que vi me párecio simple y efectivo.

 

PD: En NavMeshAgent, también tienes el radio de tu personaje, que determina por donde puede pasar y por donde no, dependiendo solo de ese radio, que se visualiza como un cilindro verde como si fuese un collider, si no se ajusta al tamaño del personaje, este no pasa por un hueco aunque fisicamente tu personaje si pasaría, también tienes un apartado para el margen de tolerancia en la evasión de obstaculos, pero esto lo he tocado poco. Espero que te sea útil.

 

Te adjunto enlace del manual de unity sobre meshObstacle. http://docs.unity3d.com/Manual/class-NavMeshObstacle.html

 

 

 

Edito, no me di cuenta que ya usas meshObstacle, por tanto lo único que debes hacer es colocar tu torre como un prefab, después de bakear la malla de navegación. No necesitas declararlo static ni nada creo. 

 

Saludos!

Edited by oph1d1us

Share this post


Link to post
Share on other sites

Hola otra vez, ¿que unity usas?, si usas unity 5, (no se si las versiones pro anteriores lo tenian) Hay un componente como el NavMeshAgent, que es navMeshObstacle, basicamente consiste en lo siguiente, bakeas tu maya de navegación, con los objetos que no se van a mover ni ser destruidos como "static ", despues creas el prefab de la torreta con el NavMeshObstacle, y si todo sale bien tu personaje esquivara la torre de forma dinamica, es decir aunque se mueva, yo lo he usado muy poco, y mas a nivel de prueba que para implementarlo realmente, pero lo poco que vi me párecio simple y efectivo.

 

PD: En NavMeshAgent, también tienes el radio de tu personaje, que determina por donde puede pasar y por donde no, dependiendo solo de ese radio, que se visualiza como un cilindro verde como si fuese un collider, si no se ajusta al tamaño del personaje, este no pasa por un hueco aunque fisicamente tu personaje si pasaría, también tienes un apartado para el margen de tolerancia en la evasión de obstaculos, pero esto lo he tocado poco. Espero que te sea útil.

 

Te adjunto enlace del manual de unity sobre meshObstacle. http://docs.unity3d.com/Manual/class-NavMeshObstacle.html

 

 

 

Edito, no me di cuenta que ya usas meshObstacle, por tanto lo único que debes hacer es colocar tu torre como un prefab, después de bakear la malla de navegación. No necesitas declararlo static ni nada creo. 

 

Saludos!

 

No hay caso, les asigno como obstacle a las torres pero aún así no las esquiva. Te doy un ejemplo: hago una fila de 3 torras pegadas, quiero cruzar al de adelante de las torres hacia atrás. En vez de esquivarlas e ir atrás, intenta "atravezarlas" quedándose trabado.

 

No se que hacer.

 

Mirá el video que subí, exactamente eso me pasa. Alguna idea de por qué?

 

Saludos

Edited by lcnvdl

Share this post


Link to post
Share on other sites

EUREKA!! activé "Carving" en el obstáculo de Navmesh y mágicamente funciona!

 

Gracias a todos por sus respuestas.

Share this post


Link to post
Share on other sites

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...