/// <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);
     }
 }
示例#3
0
        /// <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);
    }
示例#5
0
        /// <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);
        }
示例#6
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);
    }
示例#7
0
 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);
         //高光
     }
 }