/// <summary> /// 攻击操作 /// </summary> public void AttackEnemy(BaseRole enemy) { //调用攻击动画 //TODO //执行攻击相关操作 Debug.Log(gameObject.name + "攻击" + enemy.gameObject.name); AddAP(20); //增加怒气值 enemy.BeAttack(Attack); //调用敌人的被攻击操作 }
/// <summary> /// 攻击动作 /// </summary> /// <param name="currentStance">当前轮到的准备攻击的序列</param> /// <param name="enemyList">攻击列表</param> private void AttackAction(BaseStance currentStance, BaseStance[] enemyList) { //确定攻击目标,按照攻击列表的顺序,如果找到攻击目标,则返回 for (int i = 0; i < currentStance.AttackList.Count; i++) { BaseStance enemyStance = enemyList[(int)currentStance.AttackList[i]]; if (enemyStance.transform.childCount > 0) { BaseRole role = currentStance.transform.GetChild(0).GetComponent <BaseRole>(); BaseRole enemy = enemyStance.transform.GetChild(0).GetComponent <BaseRole>(); //执行攻击操作 role.AttackEnemy(enemy); break; } } }