Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        /// <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  角色选择器
            //附加在敌人物体中
            //提供选中/取消功能(等待指定时间自动取消选中)
        }