IEnumerator PlayerAttackRoutine() { SkillEffect se = bcManager.getBattleSkillEffect(); uiManager.showPlayerAttack(); bcManager.destroyAllDice(); // 清掉骰子模型 uiManager.showPlayerSkillActivate(); if (se == null) { yield return(new WaitForSeconds(0.8f)); } else { yield return(new WaitForSeconds(1)); } if (bcManager.turnDamage > 0) { uiManager.showPlayerAttackAnim(); yield return(new WaitForSeconds(0.5f)); audioManager.playPlayerAttack(); if (se != null && se.isSkillActivated && se.isDamage) { Instantiate(bcManager.getBattleSkill().skillprefab, monster.transform.position, Quaternion.identity); } else { Instantiate(normalAttackPrefab, monster.transform.position, Quaternion.identity); } uiManager.showMonsterHurt(); yield return(new WaitForSeconds(1)); } if (se != null && se.isHeal && se.heal > 0) { Instantiate(HealPrefab, currentCharacter.transform.position, Quaternion.identity); uiManager.showPlayerRecoverHp(); yield return(new WaitForSeconds(1)); } // demo用 if (monster.Hp <= 0) { // 提醒一下,換scene前一定要將角色parent移回dataManager,不然就算有Don't Destroy,也因為父親被砍,而消失。 // 只有戰敗死亡的時候,才不用管,反正都要重頭來過 currentCharacter.transform.SetParent(dataManager.transform, false); currentCharacter.transform.localPosition = new Vector3(0f, 10f, 0f); screenEffectManager.fadeOutToLoot(); } uiManager.updateMonsterUI(); uiManager.updateCharacterUI(); uiManager.showNextButton(); currentUnitIndex = (currentUnitIndex + 1) % battleUnits.Length; }
public void showPlayerSkillActivate() { SkillEffect se = bcManager.getBattleSkillEffect(); if (se == null) { // 沒使用技能 Debug.Log("普通攻擊動畫!"); } else { if (se.isSkillActivated) { // 技能發動成功 battleSkillText.text = usingBattleSkill.skillName_ch; playSkillActivatedAnimation(); Debug.Log("技能動畫! 技能成功"); } else { // 技能沒發動成功 Debug.Log("普通攻擊動畫! 技能失敗"); } } }