Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: lcnvdl en Mayo 13, 2015, 05:58:37 AM

Título: Simple y sencillo Pathfinding :/
Publicado por: lcnvdl en Mayo 13, 2015, 05:58:37 AM
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!
Título: Simple y sencillo Pathfinding :/
Publicado por: GSG3D en Mayo 13, 2015, 06:52:08 AM
Y porque no utilizas el de Unity?
Título: Simple y sencillo Pathfinding :/
Publicado por: lcnvdl en Mayo 13, 2015, 07:04:33 AM
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.
Título: Simple y sencillo Pathfinding :/
Publicado por: mrpacogp en Mayo 13, 2015, 11:27:38 AM
Gira muy lento? No se que sistema usas, pero yo con Draugar hacia girar a los enemigos a la velocidad que yo quería.
Título: Simple y sencillo Pathfinding :/
Publicado por: en Mayo 13, 2015, 01:43:33 PM
Has probado con RAIN hay versión gratis en el asset store https://www.assetstore.unity3d.com/en/#!/content/23569.
 
Lo del giro.. la velocidad de giro y otros parametros se ajustan en el NavMeshAgent, y da bastante juego la verdad.
 
Saludos!
Título: Simple y sencillo Pathfinding :/
Publicado por: kaito en Mayo 13, 2015, 08:43:16 PM
Si buscas algo simple y sencillo, prueba este enviado por un usuario del foro 
Título: Simple y sencillo Pathfinding :/
Publicado por: lcnvdl en Mayo 16, 2015, 02:06:05 AM
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 rom*** 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.
Título: Simple y sencillo Pathfinding :/
Publicado por: en Mayo 16, 2015, 03:03:35 PM
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!
Título: Simple y sencillo Pathfinding :/
Publicado por: lcnvdl en Mayo 20, 2015, 06:36:10 AM
Cita de: oph1d1us date=1431781415Hola 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
Título: Simple y sencillo Pathfinding :/
Publicado por: lcnvdl en Mayo 20, 2015, 06:40:38 AM
EUREKA!! activé "Carving" en el obstáculo de Navmesh y mágicamente funciona!
 
Gracias a todos por sus respuestas.
Título: Simple y sencillo Pathfinding :/
Publicado por: en Mayo 20, 2015, 06:29:53 PM
No hay de que para eso estamos!
 
Saludos.