private IEnumerator OnShowAllFight(List <DamageData> allDamage) { for (int i = 0; i < allDamage.Count; i++) { FightItemButton target = null; Vector3 orgPos = allDamage[i].tType[0] == "P" ? playerButtonPos [allDamage [i].orgIdx] : enemyButtonPos [allDamage [i].orgIdx]; //當TargetIdx重複時會加10,此時需要減去10 int minusCount = allDamage [i].targetIdx >= 10 ? 10 : 0; target = allDamage[i].tType[1] == "P" ? playerButton [allDamage [i].targetIdx - minusCount] : enemyButton [allDamage [i].targetIdx - minusCount]; Vector3 targetPos = allDamage[i].tType[1] == "P" ? playerButtonPos [allDamage [i].targetIdx - minusCount] : enemyButtonPos [allDamage [i].targetIdx - minusCount]; GroundSEController gse = SEPool.Dequeue(); gse.SetAttackShow(orgPos, targetPos, target, allDamage [i]); gse.onRecycleDamage = ShowFightEnd; gse.gameObject.SetActive(true); gse.Run(); if (i == 0) { if (allDamage.Count == 1) { yield return(new WaitForSeconds(0.5f)); //該名角色最後攻擊所需時間 } yield return(new WaitForSeconds(0.2f)); //該名角色的物理及魔法攻擊的顯示間隔 } else { yield return(new WaitForSeconds(0.5f)); //該名角色最後攻擊所需時間 } } fightController.OnTriggerSkill(allDamage); }