public void AttackUseSkill(int skillID, bool isBatter = false) { if (isBatter && data != null) { skillID = data.nextBatterId; } data = skillManager.PrepareSkill(skillID); if (data != null) { if (data.attackType == SkillAttackType.Single) { Transform[] tran = PitchOnTargetOnSkillData(data); if (tran != null && tran[0] != null) { transform.LookAt(tran[0]); tran[0].GetComponent <CharacterSelected>().SetSelectedActive(true); //2. 如果单攻 选中目标,间隔3秒自动取消。 //3.如果选中A目标,再选中B目标时,先取消选中A。 //取消之前的物体 SetSelectedFX(targetTF, false); //选中当前的物体 SetSelectedFX(tran[0], true); targetTF = tran[0]; //ActivateTarger(tran[0]); } } anim.SetBool(data.animationName, true); } }
/// <summary> /// 使用技能攻击 /// </summary> /// <param name="skillID">技能编号</param> /// <param name="isBatter">是否连击</param> public void AttackUseSkill(int skillID, bool isBatter) { //如果连击,获取下一个技能编号。 if (attackSkill != null && isBatter) { skillID = attackSkill.nextBatterId; } //准备技能 attackSkill = skillManager.PrepareSkill(skillID); if (attackSkill == null) { return; } //queue.Enqueue(attackSkill); //如果成功则播放动画(生成技能通过动画事件调用) anim.SetBool(attackSkill.animationName, true); if (attackSkill.attackType != SkillAttackType.Single) { return; } //如果单攻,朝向目标(根据当前技能信息查找目标) var targetTF = SelectTarget(); transform.LookAt(targetTF); //选中目标,选中其他目标时,先取消上一个选中目标。 ShowSelectedFx(false); attackTargetTF = targetTF; ShowSelectedFx(true); //CharacterSelected 角色选择器 //附加在敌人物体中 //提供选中/取消功能(等待指定时间自动取消选中) }