private IEnumerator skill1()//Warp { bool distanceCheck = (thisObjectScript.GetShortestDistance() < skillDistance[0] && thisObjectScript.GetAttackDistance() < thisObjectScript.GetShortestDistance()); if ((shortestScript != null) && canUseSkill[0] && distanceCheck) { thisObjectScript.GetAudi().clip = skillSound[0]; thisObjectScript.GetAudi().Play(); skillUsed = true; canUseSkill[0] = false; if (!thisObjectScript.GetIsDead()) { anim.Play("strongest1Warp"); } thisObjectScript.AttackedCheck(skiilDelay[0]); // 재사용 대기시간이 빠른 스킬이 있을 땐 빼줘야 하는 코드 // 재사용 대기시간이 빠른 스킬이 실행중일 때 다른 공격이 실행되지 않길 // 원하면 이 코드를 실행시키되, 위에 조건문에 !thisObjectScript.GetAttackedCheck();를 추가하자 GameObject a = Instantiate(particle, (transform.position + shortestScript.transform.position) / 2, Quaternion.Euler(0f, 180f, 0f)); a.transform.SetParent(null); yield return(new WaitForSeconds(skiilDelay[0])); skillUsed = false; StartCoroutine(skill1Re()); try { Vector2 targetPosition = shortestScript.transform.localPosition; targetPosition.x += thisObjectScript.GetAttackDistance(); transform.localPosition = targetPosition;//스킬 사용 } catch (MissingReferenceException) { Destroy(a); } Destroy(a); } }