public void onWeaponTouch(int colliderType, IHitable target) { if (attackedColliders.Contains(target)) { return; } var hitable = target.GetComponent <IHitable>(); var fsm = target.GetComponent <FSMbase>(); if (hitable != null) { AttackManager.GetInstance().HandleAttack(attackHandle, hitable, player, Damages[tempAtkCount], false, true); attackedColliders.Add(target); } if (fsm != null) { //!TODO 한 공격에 한번만 맞게 할 것 List <IHitable> alreadyHitTarget = new List <IHitable>(); //타격된 저장용 alreadyHitTarget.Add(target.GetComponent <IHitable>()); for (int i = 0; i < attackConnectCount; i++) { IHitable[] targetList = AttackManager.GetInstance().GetTargetList(alreadyHitTarget.Last().transform.position, 10, 1 << 10, alreadyHitTarget); if (targetList.Length < 1) { break; } alreadyHitTarget.Add(targetList[0]); } for (int i = 1; i < alreadyHitTarget.Count; i++) { AttackManager.GetInstance().HandleAttack(attackHandle, alreadyHitTarget[i].GetComponent <FSMbase>(), player, Damages[tempAtkCount], false, true); attackedColliders.Add(alreadyHitTarget[i]); } } }