public override void Attack(GuardAbs guardObj) { enemyAbs = guardObj.gameObject.GetComponent <GuardAbs>(); if (guardObj.gameObject.layer == Layers.CHARACTER && enemyAbs != null) { if (enemyAbs.getGuardLevel() <= ATTACKLEVEL) { gunnerEnemy = guardObj.gameObject.GetComponent <GunnerAttack>(); if (gunnerEnemy != null) { try { enemyAbs.TryDestroy(myAbs); myAbs.TryDestroy(myAbs); UnityEventCenter.SendMessage <AudioEvent>(new AudioEvent(gameObject, clip)); } catch { guardObj.SendMessage(GameobjBase.TryDestroyFUNC); gameObject.SendMessage(GameobjBase.TryDestroyFUNC); //Destroy(guardObj.gameObject); //Destroy(this.gameObject); } } else { try { enemyAbs.TryDestroy(myAbs); UnityEventCenter.SendMessage <AudioEvent>(new AudioEvent(gameObject, clip)); } catch { guardObj.gameObject.SendMessage(GameobjBase.TryDestroyFUNC); //Destroy(guardObj.gameObject); } finally { bulletCount--; if (bulletCount == 0) { myAbs.TryDestroy(myAbs); } } } } } }