public void OverrideAnimator(AnimationClip clip, string animationNameToOverride) { if (clip != null) { ClipOverrides[animationNameToOverride] = clip; RuntimeAnimator.ApplyOverrides(ClipOverrides); } }
private void SetupAnimator() { if (RuntimeAnimator == null) { RuntimeAnimator = new AnimatorOverrideController(Animator.runtimeAnimatorController); Animator.runtimeAnimatorController = RuntimeAnimator; } if (ClipOverrides == null) { ClipOverrides = new AnimationClipOverrides(RuntimeAnimator.overridesCount); RuntimeAnimator.GetOverrides(ClipOverrides); } CurrentAttacksAnimations = defaultAttacks.GenerateDictionary(); for (int s = (int)AttackStyle.Up; s < (int)AttackStyle.Left + 1; s++) { for (int i = (int)AttackSequence.Beggining; i < (int)AttackSequence.End + 1; i++) { OverrideAnimator( CurrentAttacksAnimations [PlayerAttacksKeys.GenerateKeyValue(true, AttackType.Primary, (AttackStyle)s) + i].Clip, emptyAttackClips.GetEmptyAnimationClipName(i, true, AttackType.Primary, (AttackStyle)s)); OverrideAnimator( CurrentAttacksAnimations [PlayerAttacksKeys.GenerateKeyValue(true, AttackType.Secondary, (AttackStyle)s) + i].Clip, emptyAttackClips.GetEmptyAnimationClipName(i, true, AttackType.Secondary, (AttackStyle)s)); OverrideAnimator( CurrentAttacksAnimations [PlayerAttacksKeys.GenerateKeyValue(false, AttackType.Primary, (AttackStyle)s) + i].Clip, emptyAttackClips.GetEmptyAnimationClipName(i, false, AttackType.Primary, (AttackStyle)s)); OverrideAnimator( CurrentAttacksAnimations [PlayerAttacksKeys.GenerateKeyValue(false, AttackType.Secondary, (AttackStyle)s) + i].Clip, emptyAttackClips.GetEmptyAnimationClipName(i, false, AttackType.Secondary, (AttackStyle)s)); } } }