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 }