void OnTriggerEnter2D(Collider2D other) { if (!explodeTriggerFired) /*inimigos do solo por ex n sao deletados dps de explodir, por isso essa checagem */ //o que colidiu pode ser o player ou municao ( damageDelar) ou municao (AmmoHandler) { DamageDealer damageDealer = other.GetComponent <DamageDealer>(); AmmoHandler projectile = other.GetComponent <AmmoHandler>(); /* só importa o player e o projetil dele, qqr outra coisa que colidir com um inimigo será indiferente a ele */ if (!damageDealer && !projectile) { return; } /*destroi municoes do player quando tocar no inimigo*/ if (other.gameObject.tag == Constantes.PLAYERPROJETIL) { if (projectile) { ProcessHit(projectile); projectile.GetComponent <AmmoHandler>().InstantiateEffect(); projectile.DestroyMe(); } else { Debug.LogWarning(Constantes.MISSING_AMMO_HANDLER_SCRIPT); } } else if (other.gameObject.tag == Constantes.PLAYER) { if (damageDealer) /*reduzira a vida do player em 55% se colidiur com um inimigo */ { damageDealer.HitDueDirectColision(GetHitPercentage()); } } } }
void OnTriggerEnter2D(Collider2D other) { AmmoHandler projectile = other.GetComponent <AmmoHandler>(); /* só importa o player e o projetil dele, qqr outra coisa que colidir com um inimigo será indiferente a ele */ if (!projectile) { return; } /*checagem do destroye aqui é só pra o tiro atravessar o objeto depis de destrui-lo xD*/ if (other.gameObject.tag == Constantes.PLAYERPROJETIL && !destroyed) { projectile.GetComponent <AmmoHandler>().InstantiateEffect(); // projectile.DestroyMe(); RemoveHealth(projectile.GetDamage()); } }
private void ProjectileHandler(AmmoHandler playerProjectile) { playerProjectile.GetComponent <AmmoHandler>().InstantiateEffect(); playerProjectile.DestroyMe(); audioManager.play_die_audio(); }