public override bool GetSkillActivateAnimation(int dataId, out float triggerDuration, out float totalDuration) { AnimatorActionAnimation2D animation2D; AnimatorSkillAnimations2D skillAnimations2D; if (!CacheSkillAnimations.TryGetValue(dataId, out skillAnimations2D)) { animation2D = defaultSkillActivateAnimation2D; } else { animation2D = skillAnimations2D.activateAnimation; } triggerDuration = 0f; totalDuration = 0f; if (animation2D == null) { return(false); } AnimationClip clip = animation2D.GetClipByDirection(CurrentDirectionType); if (clip == null) { return(false); } triggerDuration = clip.length * animation2D.triggerDurationRate; totalDuration = clip.length + animation2D.extraDuration; return(true); }
private IEnumerator PlaySkillCastClip_Animator(int dataId, float duration) { AnimatorCharacterAnimation2D animation2D; AnimatorSkillAnimations2D skillAnimations2D; if (!CacheSkillAnimations.TryGetValue(dataId, out skillAnimations2D)) { animation2D = defaultSkillActivateAnimation2D; } else { animation2D = skillAnimations2D.castAnimation; } if (animation2D != null) { // Cast Skill CacheAnimatorController[CLIP_CAST_SKILL_DOWN] = animation2D.down; CacheAnimatorController[CLIP_CAST_SKILL_UP] = animation2D.up; CacheAnimatorController[CLIP_CAST_SKILL_LEFT] = animation2D.left; CacheAnimatorController[CLIP_CAST_SKILL_RIGHT] = animation2D.right; CacheAnimatorController[CLIP_CAST_SKILL_DOWN_LEFT] = animation2D.downLeft; CacheAnimatorController[CLIP_CAST_SKILL_DOWN_RIGHT] = animation2D.downRight; CacheAnimatorController[CLIP_CAST_SKILL_UP_LEFT] = animation2D.upLeft; CacheAnimatorController[CLIP_CAST_SKILL_UP_RIGHT] = animation2D.upRight; yield return(0); animator.SetBool(ANIM_IS_CASTING_SKILL, true); animator.Play(0, 0, 0f); yield return(new WaitForSecondsRealtime(duration)); animator.SetBool(ANIM_IS_CASTING_SKILL, false); } }
IEnumerator PlaySkillCastClipRoutine(int dataId, float duration) { CharacterAnimation2D animation2D; SkillAnimations2D skillAnimations2D; if (!CacheSkillAnimations.TryGetValue(dataId, out skillAnimations2D)) { animation2D = defaultSkillActivateAnimation2D; } else { animation2D = skillAnimations2D.castAnimation; } if (animation2D != null) { AnimationClip2D anim = animation2D.GetClipByDirection(CurrentDirectionType); if (anim != null) { playingAction = true; Play(anim); yield return(new WaitForSecondsRealtime(duration)); Play(idleAnimation2D, CurrentDirectionType); playingAction = false; } } }
public override SkillActivateAnimationType UseSkillActivateAnimationType(int dataId) { if (!CacheSkillAnimations.ContainsKey(dataId)) { return(SkillActivateAnimationType.UseActivateAnimation); } return(CacheSkillAnimations[dataId].activateAnimationType); }
private AnimatorActionAnimation2D GetActionAnimation(AnimActionType animActionType, int dataId) { AnimatorActionAnimation2D animation2D = null; AnimatorSkillAnimations2D skillAnimations2D; switch (animActionType) { case AnimActionType.AttackRightHand: if (!CacheRightHandAttackAnimations.TryGetValue(dataId, out animation2D)) { animation2D = defaultAttackAnimation2D; } break; case AnimActionType.AttackLeftHand: if (!CacheLeftHandAttackAnimations.TryGetValue(dataId, out animation2D)) { animation2D = defaultAttackAnimation2D; } break; case AnimActionType.Skill: if (!CacheSkillAnimations.TryGetValue(dataId, out skillAnimations2D)) { animation2D = defaultSkillActivateAnimation2D; } else { animation2D = skillAnimations2D.activateAnimation; } break; case AnimActionType.ReloadRightHand: if (!CacheRightHandReloadAnimations.TryGetValue(dataId, out animation2D)) { animation2D = defaultReloadAnimation2D; } break; case AnimActionType.ReloadLeftHand: if (!CacheLeftHandReloadAnimations.TryGetValue(dataId, out animation2D)) { animation2D = defaultReloadAnimation2D; } break; } return(animation2D); }