Example #1
0
        public override void Start()
        {
            base.Start();

            //todo 播放动作
            UnityEngine.Debug.Log("播放动作");


            AnimatorComponent animatorComponent = m_Skill.Caster.GetUnitComponent <AnimatorComponent>();
            SkillData         skillData         = m_Skill.SkillData;

            if (skillData.IsNormalAttack == 1)
            {
                animatorComponent.SetIntValue(Constant.AnimatorParam.AttackId, skillData.SkillAnimatorIndex);
                animatorComponent.SetTrigger(Constant.AnimatorParam.Attack);
            }
            else
            {
                animatorComponent.SetIntValue(Constant.AnimatorParam.SkillId, skillData.SkillAnimatorIndex);
                animatorComponent.SetTrigger(Constant.AnimatorParam.Skill);
            }
        }
    public void ActionHandle(BuffHandlerVar buffHandlerVar)
    {
#if !SERVER
        Buff_PlayAnim buff_PlayAnim = (Buff_PlayAnim)buffHandlerVar.data;

        if (buff_PlayAnim.playSpeed == 0)
        {
            buff_PlayAnim.playSpeed = 1;
        }

        if (!buffHandlerVar.GetBufferValue(out BufferValue_TargetUnits bufferValue_TargetUnits))
        {
            Log.Error("找不到对应的目标!");
            return;
        }
        foreach (var v in bufferValue_TargetUnits.targets)
        {
            //角色动画
            AnimatorComponent animatorComponent = v.GetComponent <AnimatorComponent>();
            if (!string.IsNullOrEmpty(buff_PlayAnim.anim_boolValue))
            {
                if (buff_PlayAnim.canBeInterrupted)
                {
                    buffHandlerVar.cancelToken.Register(() =>
                    {
                        animatorComponent.SetBoolValue(buff_PlayAnim.anim_boolValue, !buff_PlayAnim.boolValue);
                    });
                }
                animatorComponent.SetBoolValue(buff_PlayAnim.anim_boolValue, buff_PlayAnim.boolValue);
            }
            if (!string.IsNullOrEmpty(buff_PlayAnim.anim_triggerValue))
            {
                animatorComponent.SetTrigger(buff_PlayAnim.anim_triggerValue);
            }

            float speed = buffHandlerVar.playSpeed * buff_PlayAnim.playSpeed;

            // animatorComponent.SetAnimatorSpeed(speed);
        }
#endif
    }