private IEnumerator Attack() { FindObjectOfType <AudioManager>().Play("SwordSound"); yield return(new WaitForSeconds(.3f)); Collider2D[] hitArray = Physics2D.OverlapCircleAll(attackPoint.position, attackRange, enemyLayer); foreach (Collider2D collider in hitArray) { if (collider.CompareTag("Enemy")) { float damage = attackDamage; if (_specialAtk) { damage = damage * 2; } if (collider.gameObject.GetComponent <Enemy>()) { Enemy enemy = collider.gameObject.GetComponent <Enemy>(); enemy.TakeDamage(damage, GetComponent <Collider2D>()); } else if (collider.gameObject.GetComponentInParent <Enemy>()) { Enemy enemy = collider.gameObject.GetComponentInParent <Enemy>(); enemy.TakeDamage(damage, GetComponent <Collider2D>()); } } else if (collider.CompareTag("Boss")) { float damage = attackDamage; if (_specialAtk) { damage = damage * 2; } if (collider.gameObject.GetComponent <BossEye>()) { Debug.Log("MONKEY"); BossEye enemy = collider.gameObject.GetComponent <BossEye>(); enemy.TakeDamage(damage); } } } }