Example #1
0
    void OnCollisionEnter2D(Collision2D other)
    {
        //Verificando se houve colisão com a pedra
        if (other.gameObject.CompareTag("pedroso"))
        {
            //Efeito de explosão quando bate na pedra
            GameObject tempExp = Instantiate(particleExplosion, transform.position, Quaternion.identity);
            Destroy(tempExp, 1.0f);

            //Destruindo o objeto, no caso o projétil
            Destroy(gameObject);
        }

        //Verificando se houve colisão com o jogador adversário
        if (other.gameObject.CompareTag("Player"))
        {
            //Ativando o screenshake quando atinge outro jogador
            _camShake.screenShake();

            //Particlua de colisão com o jogadore
            GameObject tempKetc = Instantiate(_ketchupParticle, transform.position, Quaternion.identity);
            Destroy(tempKetc, 1.0f);

            //Pegando o componente do tank para chamar a função de dano com o valor
            other.collider.GetComponent <PlayerTank>().ApplyDamage((int)other.collider.GetComponent <PlayerTank>().Turret._damage, _playerNumber);

            //Destruindo o projétil
            Destroy(gameObject);
        }

        //Verificando colisão com a comida
        if (other.gameObject.CompareTag("Food"))
        {
            //Instancia uma cópa da particula
            GameObject tempFood = Instantiate(_foodExplosion, transform.position, Quaternion.identity);

            //Destroi a cópia
            Destroy(tempFood, 1.2f);

            Destroy(other.gameObject);
        }

        //Verificando colisão com as caixas do cenário
        if (other.gameObject.CompareTag("Box"))
        {
            //Destruindo o projétil
            Destroy(gameObject);

            //Instancia uma cópa da particula
            GameObject tempFood = Instantiate(_foodExplosion, transform.position, Quaternion.identity);

            //Destroi a cópia
            Destroy(tempFood, 1.2f);
        }

        //Verificando colisão com as paredes
        if (other.gameObject.CompareTag("Wall"))
        {
            //Instancia uma cópa da particula
            GameObject tempWallExplosion = Instantiate(_wallExplosion, transform.position, Quaternion.identity);
            //Destroi a cópia
            Destroy(tempWallExplosion, 1.0f);

            //Destrói o projétil
            Destroy(gameObject);
        }
    }