// Animancer // Copyright 2020 Kybernetik // #pragma warning disable CS0649 // Field is never assigned to, and will always have its default value. using UnityEngine; namespace Animancer.Examples.Locomotion { /// /// Inherits from and adds the ability to run. /// [AddComponentMenu(Strings.MenuPrefix + "Examples/Locomotion - Idle And Walk And Run")] [HelpURL(Strings.APIDocumentationURL + ".Examples.Locomotion/IdleAndWalkAndRun")] public class IdleAndWalkAndRun : IdleAndWalk { /************************************************************************************************************************/ [SerializeField] private AnimationClip _Run; /************************************************************************************************************************/ protected override void PlayMove() { // We will play either the Walk or Run animation. // We need to know which animation we are trying to play and which is the other one. AnimationClip playAnimation, otherAnimation; if (Input.GetButton("Fire3"))// Left Shift by default. { playAnimation = _Run; otherAnimation = Walk; } else { playAnimation = Walk; otherAnimation = _Run; } // Play the one we want. var playState = Animancer.Play(playAnimation, 0.25f); // If the other one is still fading out, align their NormalizedTime to ensure they stay at the same // relative progress through their walk cycle. var otherState = Animancer.States[otherAnimation]; if (otherState != null && otherState.IsPlaying) playState.NormalizedTime = otherState.NormalizedTime; } /************************************************************************************************************************/ } }