Exemple #1
0
    public void OverrideAnimator(AnimationClip clip, string animationNameToOverride)
    {
        if (clip != null)
        {
            ClipOverrides[animationNameToOverride] = clip;

            RuntimeAnimator.ApplyOverrides(ClipOverrides);
        }
    }
Exemple #2
0
    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));
            }
        }
    }