private IEnumerator <CoroutinePhase> TimeAttack() { m_attackCycle++; yield return(Suspend.Do(skills[0].Cooltime())); if (null != CurrentTarget) { if (!skills[0].IsCooltime()) { if (AILogic.TargetDistance(this.transform, CurrentTarget) <= skills[0].SkillRange) { if (skills[0] != null) { //Debug.Log("공격"); WeaponPosition.transform.forward = (CurrentTarget.position - WeaponPosition.transform.position).normalized; AssetManager.Projectile.Retrieve(skills[0].SkillName, this.WeaponPosition, this.gameObject); skills[0].Reset(this); } } } } if (null != m_customPath) { if (m_attackCycle > m_customPath.m_nodes[m_customIndex].AttackCycle) { Move(); } else { Attack(); } } else { Attack(); } }