/// <summary> /// 执行技能 /// </summary> /// <param name="skillBase">技能对象</param> /// <param name="packer">技能数据包</param> /// <param name="isSubSkill">是否为子技能</param> /// <param name="callback">结束回调</param> public void DoSkillInfo(SkillBase skillBase, FormulaParamsPacker packer, bool isSubSkill = false, Action callback = null) { if (skillBase == null) { throw new Exception("方程式对象为空."); } // 子级技能没有cd if (isSubSkill) { DoFormula(skillBase.GetActionFormula(packer), callback); } else { if (SkillCouldRelease(skillBase)) { SetSkillInCD(skillBase as SkillInfo); DoFormula(skillBase.GetActionFormula(packer), callback); // 统计释放技能次数 FightDataStatistical.Single.AddSkillCount("" + skillBase.ReleaseMember.ClusterData.AllData.MemberData.ObjID.ID, 1, skillBase.ReleaseMember.ClusterData.AllData.MemberData.Camp); } else { //Debug.Log("技能:" + skillBase.Num + "在cd中"); } // 否则技能在CD中不能释放 } }