private IEnumerator RepeatDamage(SkillDeployer deployer) { float atkTime = 0; do { OnceDamage(deployer); yield return(new WaitForSeconds(deployer.CurrentSkillData.atkInterval - Time.deltaTime)); atkTime += (deployer.CurrentSkillData.atkInterval - Time.deltaTime); deployer.CalculateTargets(); } while (atkTime < deployer.CurrentSkillData.durationTime); }
/// <summary> /// 重复攻击 /// </summary> /// <returns></returns> private IEnumerator RepeatAttack(SkillDeployer deployer) { float atkTime = 0; do { if (deployer.CurrentSkillData.attackTargets != null) { Attack(deployer.CurrentSkillData); } yield return(new WaitForSeconds(deployer.CurrentSkillData.atkInterval)); atkTime += deployer.CurrentSkillData.atkInterval; //再次计算攻击目标 deployer.CalculateTargets(); } while (atkTime < deployer.CurrentSkillData.durationTime); }