Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

A* para unity en 2d

Iniciado por rogerdv, Febrero 03, 2016, 04:21:04 PM

Tema anterior - Siguiente tema
 Necesito algún tutorial sobre cómo implementar el algoritmo A* en un proyecto 2d. He estado buscando, pero no encuentro nada que se ajuste a lo que necesito. Lo que estoy tratando de implementar es una IA básica que persiga al jugador por un laberinto cuando éste se acerque, creo que para eso la única solución es tener búsqueda de caminos, pero si alguien me puede sugerir algo más sencillo se lo agradecería.

http://dsgp.blogspot.com">Divagaciones sobre programación y juegos



¿Podrías utilizar NavMesh?, De lo contrario, el juegos, ¿es Top View?, si es así, entonces trata de implementar un sistema de pathfinder, recuerda que este sistema te sirve cuando trabajas sobre Grillas, ya que es mas optimo que el NavMesh, aunque podrias tambien implementarlo sobre cualquier otra situación.El Algoritmo de busqueda no es algo muy dificil de entender, pero si es un poco complicado llegar a optimizarlo, deberás saber, Staks, BinaryTree, y otras estructuras complejas. Si estas empezando en la programacion te recomendaria que adaptes tu proyecto para utilizar NavMesh, y no pierdas tiempo con Algoritmos que aun pueden ser muy difíciles de aplicar correctamente, en resumen, entender el funcionamiento es simple, lograr un resultado óptimo es dificil.Quizas un dia de estos cuando termine con los Topic de UNET escriba un Topic sobre Pathfinding.Saludos. PD: si estas aun un poco interesado te dejo un buen material para leerhttp://www.cristalab.com/tutoriales/algoritmo-a-para-encontrar-el-camino-mas-corto-en-ia-c91591l/" rel="external nofollow">http://www.cristalab.com/tutoriales/algoritmo-a-para-encontrar-el-camino-mas-corto-en-ia-c91591l/http://jsbsan.blogspot.com.es/2012/09/algoritmo-estrella-usandolo-en-gambas3.html" rel="external nofollow">http://jsbsan.blogspot.com.es/2012/09/algoritmo-estrella-usandolo-en-gambas3.htmlhttps://escarbandocodigo.wordpress.com/2011/07/11/1051/" rel="external nofollow">https://escarbandocodigo.wordpress.com/2011/07/11/1051/En youtube también existen muchos videos donde te explican como programarlo, y no como funcionan. 

Sí, es top view, pensé que navmesh no funcionaría ahí. Revisaré esos enlaces.

http://dsgp.blogspot.com">Divagaciones sobre programación y juegos



Bueno, en este caso me asalta una duda: cómo puedo dividir una escena compuesta por sprites en cuadrículas? Hay alguna forma de tomar todos esos sprites y meterlos en un array bidimensional, marcando los que son paredes como no pasables, etc? 

http://dsgp.blogspot.com">Divagaciones sobre programación y juegos



Cita de: rogerdv date=1454594695" data-ipsquote-contentid="35075" data-ipsquote-contentcommentid="126792" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_TopicBueno, en este caso me asalta una duda: cómo puedo dividir una escena compuesta por sprites en cuadrículas? Hay alguna forma de tomar todos esos sprites y meterlos en un array bidimensional, marcando los que son paredes como no pasables, etc? 
No se entiende muy bien lo que quieres hacer,  primeramente los sprites no pueden ser tratados como NavMesh (que yo sepa),  porque claramente no tienen malla. Si te referis a Texturas (en una malla) no se porque quieres tener una cuadricula. Explica un poco mas y te podremos ayudar.

puedes representar la escena en 3D, hacerle el navmesh, mantenerla oculta y tomar las posiciones resultantes para los sprites... para converitr de 3D a 2D: X es X y Y es Z, nada mas ignoras Y del 3D

La idea de Braltor es una alternativa muy rápida de cómo implementar, y creo la única más aceptable. Pero en tu caso, si aun necesitas crear un Pathfinder para utilizar en una grilla del juego te recomendaría que aprendas Tile Map 

Febrero 04, 2016, 07:41:35 PM #7 Ultima modificación: Febrero 04, 2016, 07:42:06 PM por Arthure
Pues la verdad es que no lo acabo de ver el hecho de usar NavMesh en un proyecto 2D ... soy de la opinion de GSG3D, creo que no se puede utilizar en este tipo de proyectos.Si solo fuera el componente NavMesh podrias hacer un apaño como el que propone Braltor, pero es que tambien necesitas objetos 3d para los obstaculos y para los agentes ... se podria hacer lo de hacer una escena donde todos los objetos quedaran ocultos (sin renderizarse) y coger las posiciones para actualizar los sprites pero para mi gusto es una opcion muy rebuscada, intervienen demasiadas variables.Lo mejor que puedes hacer es programarte tu mismo el sistema de pathfinder para 2D

Me dediqué a confirmarlo, y el Navmesh no se puede usar en 2D. Hay soluciones en el Asset Store (bloqueado para mi país), así que la solución es implementar mi propio pathfinder en 2D.GSG3D, el algoritmo A* requiere dividir la escena en cuadriculas, de ahí mi pregunta. Desde el principio quería usar tilemaps, pero Unity 5.2 no los tiene y el beta que descargue no funciona si no tengo una licencia pro. 

http://dsgp.blogspot.com">Divagaciones sobre programación y juegos



dividir la escena en cuadriculas es lo mas elemental, usas división entera de las posiciones... de saber eso a crear el A* te queda un buen buen trecho... suerte!

Etiquetas: