/// <summary> /// 玩家技能 /// </summary> public void AttackUseSkill(int skillID) { //准备技能 skillData = skillManager.PrepareSkill(skillID); if (skillData == null) { return; } //播放动画(圆形动画...普攻...生成原型(普攻)技能) animator.SetBool(skillData.animationName, true); //生成技能 DeploySkill()//动画播放自动委托释放 //如果单攻 if (skillData.attackType != SkillAttackType.Single) { return; } //--查找目标 Transform targetTF = SelectTarget(skillData, transform); //--朝向目标 transform.LookAt(targetTF); //--选中目标 //1.指定时间后取消 SetSelectedActiveFx(false); selectedTarget = targetTF; //2.选择A目标,在自动取消前,又选中B,则取消A SetSelectedActiveFx(true); }
/// <summary> /// 使用指定技能 /// </summary> /// <param name="skillid">技能编号</param> /// <param name="isBatter">是否连击</param> public void AttackUseSkill(int skillid, bool isBatter) { //如果是连击,找当前技能的下一个连击技能 if (currentUseSkill != null && isBatter) { skillid = currentUseSkill.nextBatterId; } //准备技能 currentUseSkill = chSkillMgr.PrepareSkill(skillid); if (currentUseSkill != null) { //目标选择 var selectedTaget = SelectTarget(); if (selectedTaget != null) { //目标选中指示的显隐 if (currentSelectedTarget != null) { TransformHelper.FindChild(currentSelectedTarget, "selected").GetComponent <Renderer>().enabled = false; } currentSelectedTarget = selectedTaget.transform; TransformHelper.FindChild(currentSelectedTarget, "selected").GetComponent <Renderer>().enabled = true; //转向目标 transform.LookAt(currentSelectedTarget); } //攻击动画 chAnim.PlayAnimation(currentUseSkill.animtionName); } }
/// <summary> /// 使用指定编号的技能 进行攻击 /// </summary> /// <param name="skillId">技能编号</param> /// <param name="isBatter">连续攻击:连攻</param> public void AttackUseSkill(int skillId, bool isBatter) { //如果是连续攻击,获取下一个技能编号 if (isBatter && currentUseSkill != null) { skillId = currentUseSkill.nextBatterId;// } //1 通过编号准备 出 对应的技能数据对象 currentUseSkill = skillMgr.PrepareSkill(skillId); if (currentUseSkill == null) { return; } //2 播放技能 对应的 攻击动画【技能施放 由动画事件调用】 chAnim.PlayAnimation(currentUseSkill.animationName);//**!!! //3 找出受攻击的目标 var selectedTarget = SelectTarget(); if (selectedTarget == null) { return; //!!! } //4 显示选中的目标效果(模型 上 红圈) //让上一个目标 隐藏红圈,让当前目标 显示红圈 ShowSelectedFx(false); currentAttackTarget = selectedTarget;//将刚刚找出的目标作为当前目标 ShowSelectedFx(true); //5 面向目标 transform.LookAt(selectedTarget.transform); }
/// <summary> /// 使用技能进行攻击 /// </summary> /// <param name="skillId">技能编号</param> /// <param name="isBatter">是否 是连续攻击:连击</param> public void AttackUseSkill(int skillId, bool isBatter) { //如果连击,获取当前技能的下一个技能 if (isBatter && currentUseSkill != null) { skillId = currentUseSkill.nextBatterId; } //1 通过技能编号 准备 技能数据对象 currentUseSkill = skillMgr.PrepareSkill(skillId); if (currentUseSkill == null) { return; } //2 找出受击目标 出现红圈! var selectTarget = SelectTarget(); if (selectTarget != null) { //3 面向目标,并显示选中目标(效果 红圈) transform.LookAt(selectTarget.transform); //将之前目标 选中效果隐藏 ShowSelectFx(false); currentAttackTarget = selectTarget; //将当前目标 选中效果显示 ShowSelectFx(true); } //4 播放技能对应的攻击动画-事件实现 chAnim.PlayAnimation(currentUseSkill. animationName); }
/// <summary> /// 使用某个技能进行攻击 /// </summary> /// <param name="skillId">技能编号</param> /// <param name="isBatter">是否连续攻击</param> public void AttackUseSkill(int skillId, bool isBatter = false) { //1根据技能吧编号 找出技能数据对象 currentUseSkill = skillMgr.PrepareSkill(skillId); if (null == currentUseSkill) { return; } //2播放技能对应的攻击动画 chAnim.PlayAnimation(currentUseSkill.animationName); //3找出受击目标 var selectedTarget = SelectTarget(); if (null == selectedTarget) { return; } //4显示选择目标效果【红圈】 ShowSelectedFx(false); // 前一个目标 选中效果 隐藏 currentAttackTarget = selectedTarget; // 更新当前目标 ShowSelectedFx(true); // 当前目标 选中效果 显示 //5面向目标 transform.LookAt(selectedTarget.transform); transform.eulerAngles = new Vector3(0, transform.eulerAngles.y, 0); }
public void AttackUseSkill(int skillID, bool isBatter = false) { if (skill != null && isBatter) { skillID = skill.nextBattlerId; } //准备技能 skill = skillManager.PrepareSkill(skillID); if (skill == null) { return; } //播放动画 anim.SetBool(skill.animationName, true); //单攻: 朝向目标 //Transform.LookAt() Transform targetTF = SelectTarget(); transform.LookAt(targetTF); //1, 选中目标 间隔指定时间后取消选中 // 2. 选中a目标 在自动取消前,又选中b目标,则需要手动将a取消 SetSelectedActiveFx(false); selectedTarget = targetTF; SetSelectedActiveFx(true); }
public void AttackUseSkill(int id) { //if(currentSkillData!=null) //准备技能 currentSkillData = skillManager.PrepareSkill(id); if (currentSkillData == null) { return; } //释放技能 skillManager.DeploySkill(currentSkillData); currentTarget = SelectTarget(); //看向攻击目标 if (currentTarget != null) { transform.LookAt(currentTarget.transform); //高光 } }