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);
        }
        public override bool GetRightHandReloadAnimation(int dataId, out float triggerDuration, out float totalDuration)
        {
            AnimatorActionAnimation2D animation2D = null;

            if (!CacheRightHandReloadAnimations.TryGetValue(dataId, out animation2D))
            {
                animation2D = defaultReloadAnimation2D;
            }
            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);
        }