Пример #1
0
    void OnCollisionEnter2D(Collision2D colisor)
    {
        bool    colisaoInvalida = false;
        Vector2 normal          = colisor.contacts[0].normal;

        Plataforma       plataforma       = colisor.transform.GetComponent <Plataforma>();
        GeradorDeArestas geradorDeArestas = colisor.transform.GetComponent <GeradorDeArestas>();

        if (plataforma != null)
        {
            if (normal != Vector2.up)
            {
                colisaoInvalida = true;
            }
        }

        else if (geradorDeArestas != null)
        {
            if (normal == Vector2.up)
            {
                colisaoInvalida = true;
            }
        }

        else //Caso cairmos no else, estamos colidindo com um bloco, pois é o que sobra
        {
            colisaoInvalida = false;
            Destroy(colisor.gameObject);
        }

        if (!colisaoInvalida)
        {
            Direcao = Vector2.Reflect(Direcao, normal);
            Direcao.Normalize();
        }
        else
        {
            GerenciadorDoGame.FinalizarJogo();
        }
    }