Jump to content
Sign in to follow this  
Ancoreig

¿Cómo pasar a través de un collider y que a su vez detecte la colisión?

Recommended Posts

Buenas a todos!,

Empecé no hace mucho con Unity y estoy cacharreando con un plataformas 2D. El caso es que quiero hacer que mi personaje active un checkpoint cuando "choca" con él, y esto lo hago con "OnTriggerEnter2D", pero me gustaría que mi personaje lo atravesase. ¿Alguna sugerencia? Gracias de antemano!

Edito: se supone que marcando el collider a "isTrigger" no debería de colisionar (o eso creo). Eso no me servía porque igualmente estaba lanzando un raycast desde el personaje para detectar colisiones, así que simplemente he hecho una comparación de tags y que ignore si es X tag. 

Se puede dar el tema por zanjado, gracias.

Edited by Ancoreig
  • Thanks 1

Share this post


Link to post
Share on other sites

Hola, así es, un trigger no debería generar colisiones de ningun tipo (lo que hace que un rigidbody dinámico responda).

On 3/26/2021 at 6:54 PM, Ancoreig said:

así que simplemente he hecho una comparación de tags y que ignore si es X tag. 

Te recomiendo que uses Physics2D.queriesHitTriggers para esto.

https://docs.unity3d.com/ScriptReference/Physics2D-queriesHitTriggers.html

Si lo pones en true cada query (raycast, sphereCast, etc) va a detectar triggers (cosa que en este caso no querés, debe ser falso). El tema es que cada vez que lo usas lo tenés que restablecer (es static!). Por ejemplo:

// Guardas el estado actual queriesHitTriggers
bool previousQueryHitTriggers = Physics2D.queriesHitTriggers;

// Usas lo que vos quieras (en este caso falso)
Physics2D.queriesHitTriggers = false;

// Hacés el query
RaycastHit2D hitInfo = Physics2D.Raycast(...)

// Lo repones
Physics2D.queriesHitTriggers = previousQueryHitTriggers;

 

 

Edited by lightbug
  • Thanks 1

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...