Jump to content
Alex Ametlle

Problema con colliders (interactuar player con suelo)

Recommended Posts

Hola a todos, acabo de empezar un proyecto que pretende ser una replica lo mas exacta posible al Super Mario de la NES.

He empezado por preparar varios tilemaps y sus paletas para dibujar el escenario. de momento he creado 2, un tilemap para el suelo y otro para el decorado (cada uno en sus respectivas capas).

También he colocado al player, le he añadido un rigidbody 2d y un box collider 2d.

cap1.PNG

Al suelo también le he puesto un box collider 2d para que colisione con el personaje.

cap2.PNG

El problema que tengo es que al darle al play el personaje es afectado por la gravedad y al chocar con el suelo este, se detiene, pero queda flotando, entre los pies de mario y el suelo queda un espacio. Ambos colliders estan ajustados a sus sprites, y no entiendo porque ocurre esto. 

cap3.PNG

 

Ojala alguien pueda ayudarme.

Un saludo a todos!

 

 

Share this post


Link to post
Share on other sites

Al final he conseguido solucionarlo.

He entrado en los valores predeterminados de las físicas de unity mediante el menú "Edit>Project Settings>Physics2D" 

Y he jugado con los valores de esta característica, hasta conseguir un resultado satisfactorio:

cap4.PNG

Un saludo.

 

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, Alex Ametlle said:

He entrado en los valores predeterminados de las físicas de unity mediante el menú "Edit>Project Settings>Physics2D" 

Y he jugado con los valores de esta característica, hasta conseguir un resultado satisfactorio:

No es recomendable cambiar ese valor. Te recomendaría que cambies la escala en general del juego, es probable que este sea el principal problema (o quizás el collider está mal seteado).

Como dato curioso, en 3D esto no pasa, 3D usa algo muy inteligente que detecta colisiones + "depenetra" los cuerpos casi a la perfección (algo de physx de nvidia).

Share this post


Link to post
Share on other sites
15 minutes ago, lightbug said:

No es recomendable cambiar ese valor. Te recomendaría que cambies la escala en general del juego, es probable que este sea el principal problema (o quizás el collider está mal seteado).

Como dato curioso, en 3D esto no pasa, 3D usa algo muy inteligente que detecta colisiones + "depenetra" los cuerpos casi a la perfección (algo de physx de nvidia).

A que te refieres con cambiar la escala de todo el juego? a que tengo que redimensionar todos los elementos? o hay alguna opción general?

Share this post


Link to post
Share on other sites

¿Has comprobado el collider del suelo? En principio si ambos están bien ajustados no debería quedar ese "trozo".

Share this post


Link to post
Share on other sites
On 5/7/2021 at 1:36 AM, Alex Ametlle said:

A que te refieres con cambiar la escala de todo el juego? a que tengo que redimensionar todos los elementos? o hay alguna opción general?

Normalmente se recomienda arrancar con una escala apropiada ya que hay constantes (tales como el contact offset, y otras más a las que no tienes acceso) que van a influir en el resultado.

Si bajando el valor de 0.01 a 0.002 no te ocasiona inconvenientes, entonces puede que no necesites cambiarlo. El tema es que el contact offset también se usa como buffer para prevenir "jitter". Es probable que un valor alto te de más rango de estabilidad, es decir, que no pase de "está en el suelo" a "está en el aire" de un frame a otro. Por esto mismo, en el tooltip del contact offset te dice que un valor cercano a cero puede causar "jitter".

 

Share this post


Link to post
Share on other sites

Finalmente he decidido escalar todos los assets del juego y manteniendo el limite de separación de los colliders por defecto, el resultado es sencillamente casi perfecto al pixel.

Creo que por el momento voy bien, algo lento, pero voy consiguiendo resultados.

No es mucho pero podéis seguir el proceso de mi proyecto desde el siguiente link:

(SE SALTA CON LA "Z")

https://simmer.io/@MrFerret/practica-clon-mario-nes

-Además podéis indicarme soluciones a lo que veáis que esta mal, por ejemplo, tengo un bug que no consigo saber por que sucede y es que al pasar a modo de puente entre las dos cajas "?" deja de detectar el suelo y se queda en modo salto.

Muchísimas gracias por los consejos.

Edited by Alex Ametlle
  • Like 1

Share this post


Link to post
Share on other sites

A ver... así a primera vista queda mucho trabajo por hacer.

La parte visual si se ve que le has dado "duro". Pero cuando le das a las cajas no salen las monedas, cuando sale la seta es un objeto rígido no coleccionable, la aceleración es rápidisima y bueno, la cámara no sigue al personaje.

Lo de la caja no se como estás haciendo la detección de suelo, quizás sea por eso. ¿Lo estás haciendo con un raycast o con un oncollision?

Share this post


Link to post
Share on other sites

×
×
  • Create New...