Jump to content
Sign in to follow this  
stztek

ANSWERED Es posible que un gameobject no le afecte la colision?

Recommended Posts

Buenas, estaba intentando hacer que el gameObject del Enemy no le afecte una colision pero al Player si.

 

Cual seria la forma efectiva de lograrlo?

Mi planteamiento era:

- Un Edge collider que cubre un entorno (una mini pantalla), del cual.. el Player no puede salir de esa pantalla.. pero el resto de los objetos/npc si.

- Si el enemigo colisiona con el Edge Collider, este se desactivaria.. y al salir de la colision se volveria a activar. Dando la ilusion que se mueve en el mapa (el mapa tiene un "paralax" que sigue al personaje)

 

alguna sugerencia? Ya que no estaria haciendo efecto (todo tiene su Rigidbody2d y collider en su lugar). Nisiquiera detecta la colision.

 

acontinación dejo un codigo basico que hice para cuando colisione con la pared invisible.

 public EdgeCollider2D edg; // Edge Collider que tiene la pared Invisible



    public void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "Pared") // Si el Enemy collisiona con la pared
        {

            Debug.Log("te");
            edg.enabled = false;
        }
    }

    public void OnCollisionExit2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "Pared") // Si el enemy ya no colisiona.
        {
            edg.enabled = true;
        }
    }

 

Share this post


Link to post
Share on other sites

Si desactivas el objeto colisionador este no disparara el evento de salida. 

No es una buena idea como lo estás implementando, lo correcto seria que obtengas los límites de la cámara, si el juego se renderiza en 2D de forma ortográfica esto es bastante simple.

Share this post


Link to post
Share on other sites

Es muy simple, tan solo tienes que ir a Edit -> Project Settings -> Physics/Physics 2D

Abajo tienes "Layer Collision Matrix", ahí seleccionas que layer colisiona con quien. Lo que te recomiendo es que te crees un layer "Enemy" y lo configures por ahí.

 

Screenshot_1.jpg

  • Like 1

Share this post


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

Es muy simple, tan solo tienes que ir a Edit -> Project Settings -> Physics/Physics 2D

Abajo tienes "Layer Collision Matrix", ahí seleccionas que layer colisiona con quien. Lo que te recomiendo es que te crees un layer "Enemy" y lo configures por ahí.

 

Screenshot_1.jpg

Gracias! Lo habia arreglado de una manera inestable por codigo pero esto me soluciona todo!

Share this post


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

×
×
  • Create New...