示例#1
0
    void OnTriggerEnter2D(Collider2D other)
    {
        //if(other.gameObject.layer == 17)/*layer mapas */
        //	CheckTileMapColision(other.gameObject);

        DamageDealer damageDealer    = other.GetComponent <DamageDealer>();
        AmmoHandler  enemyProjectile = other.GetComponent <AmmoHandler>();

        //é importante... n tire esse if ( se n tiver nenhum dos dois);
        if (!damageDealer && !enemyProjectile)
        {
            return;
        }
        /*independente do que colidiu, o player irá tomar um hit... */
        if (damageDealer)
        {
            if (damageDealer.CanHurt())           /*pois pode ser que o inimigo ja tenha sido morto, entao n é pra me ferir/mudar minha cor mais */
            {
                ProcessHit(damageDealer);
            }
        }
        else if (enemyProjectile)
        {
            ProcessHit(enemyProjectile);
        }
        /* dependendo do que colidiu com o player, esse irá ser destruído */
        if (other.gameObject.tag != Constantes.BOSS && !IsGroundEnemy(other)) //destroi inimigos comuns apenas
        {
            if (damageDealer)                                                 //inimigo perdera 25% da vida que tem ao colidir diretamente com o player
            {
                damageDealer.HitDueDirectColision(GetHitPercentage());
            }
            else if (enemyProjectile)
            {
                enemyProjectile.InstantiateEffect();
                enemyProjectile.DestroyMe();
            }
        }
    }