AnimancerComponent Class

Summary

The main component through which other scripts can interact with Animancer. It allows you to play animations on an UnityEngine.Animator without using a UnityEngine.RuntimeAnimatorController.
Assembly
Animancer.dll
Namespace
Animancer
Interfaces
Base Types
  • MonoBehaviour
Derived Types
graph BT Type-->Base0["MonoBehaviour"] Type-.->Interface0["IAnimancerComponent"] click Interface0 "/animancer/api/Animancer/IAnimancerComponent" Type-.->Interface1["IEnumerator"] Type-.->Interface2["IAnimationClipSource"] Type-.->Interface3["IAnimationClipCollection"] click Interface3 "/animancer/api/Animancer/IAnimationClipCollection" Type["AnimancerComponent"] class Type type-node Derived0["NamedAnimancerComponent"]-->Type click Derived0 "/animancer/api/Animancer/NamedAnimancerComponent"

Syntax

[AddComponentMenu(Strings.MenuPrefix + "Animancer Component")]
[HelpURL(Strings.DocsURLs.APIDocumentation + "/" + nameof(AnimancerComponent))]
[DefaultExecutionOrder(DefaultExecutionOrder)]
public class AnimancerComponent : MonoBehaviour, IAnimancerComponent, IEnumerator, 
    IAnimationClipSource, IAnimationClipCollection

Remarks

This class can be used as a custom yield instruction to wait until all animations finish playing.

This class is mostly just a wrapper that connects an Animancer.AnimancerPlayable to an UnityEngine.Animator.

Documentation: Component Types

Attributes

Type Description
AddComponentMenu
HelpURLAttribute
DefaultExecutionOrder

Fields

Name Constant Value Summary
DefaultExecutionOrder -5000
Initialize before anything else tries to use this component.
static

Properties

Name Value Summary
ActionOnDisable AnimancerComponent.DisableAction
[UnityEngine.SerializeField] Determines what happens when this component is disabled or its UnityEngine.GameObject becomes inactive (i.e. in Animancer.AnimancerComponent.OnDisable).
Animator Animator
[UnityEngine.SerializeField] The UnityEngine.Animator component which this script controls.
InitialUpdateMode Nullable<AnimatorUpdateMode>
[Editor-Only] The Animancer.IAnimancerComponent.UpdateMode that was first used when this script initialized.
IsPlayableInitialized bool
Indicates whether the Animancer.AnimancerComponent.Playable has been initialized.
Layers AnimancerPlayable.LayerList
The layers which each manage their own set of animations.
Playable AnimancerPlayable
The internal system which manages the playing animations. Accessing this property will automatically initialize it.
States AnimancerPlayable.StateDictionary
The states managed by this component.
UpdateMode AnimatorUpdateMode
Determines when animations are updated and which time source is used. This property is mainly a wrapper around the UnityEngine.Animator.updateMode.

Methods

Name Value Summary
~AnimancerComponent() void
[Editor-Only] Ensures that the Animancer.AnimancerPlayable is destroyed in Edit Mode, but not in Play Mode since we want to let Unity complain if that happens.
Evaluate() void
Evaluates all of the currently playing animations to apply their states to the animated objects.
Evaluate(float) void
Advances all currently playing animations by the specified amount of time (in seconds) and evaluates the graph to apply their states to the animated objects.
GatherAnimationClips(ICollection<AnimationClip>) void
[Animancer.IAnimationClipCollection] Gathers all the animations in the Animancer.AnimancerComponent.Playable.

In the Unity Editor this method also gathers animations from other components on parent and child objects.
GetAnimationClips(List<AnimationClip>) void
[UnityEngine.IAnimationClipSource] Calls Animancer.AnimancerComponent.GatherAnimationClips(System.Collections.Generic.ICollection{UnityEngine.AnimationClip}).
GetKey(AnimationClip) Object
Returns the `clip` itself. This method is used to determine the dictionary key to use for an animation when none is specified by the user, such as in Animancer.AnimancerComponent.Play(UnityEngine.AnimationClip). It can be overridden by child classes to use something else as the key.
InitializePlayable() void
Creates a new Animancer.AnimancerPlayable if it doesn't already exist.
IsPlaying() bool
Returns true if at least one animation is being played.
IsPlaying(AnimancerState) bool
[Warning] You should not use an Animancer.AnimancerState as a key. Just check Animancer.AnimancerState.IsPlaying.
IsPlaying(AnimationClip) bool
Returns true if a state is registered for the `clip` and it is currently playing.

The actual dictionary key is determined using Animancer.AnimancerComponent.GetKey(UnityEngine.AnimationClip).
IsPlaying(IHasKey) bool
Returns true if a state is registered with the Animancer.IHasKey.Key and it is currently playing.
IsPlaying(Object) bool
Returns true if a state is registered with the `key` and it is currently playing.
IsPlayingClip(AnimationClip) bool
Returns true if the `clip` is currently being played by at least one state.

This method is inefficient because it searches through every state to find any that are playing the `clip`, unlike Animancer.AnimancerComponent.IsPlaying(UnityEngine.AnimationClip) which only checks the state registered using the `clip`s key.
OnDestroy() void
Ensures that the Animancer.AnimancerComponent.Playable is properly cleaned up.
OnDisable() void
Acts according to the Animancer.AnimancerComponent.ActionOnDisable.
OnEnable() void
Ensures that the UnityEngine.Playables.PlayableGraph is playing.
Play(AnimancerState) AnimancerState
Stops all other animations on the same layer, plays the `state`, and returns it.
Play(AnimancerState, float, FadeMode) AnimancerState
Starts fading in the `state` while fading out all others in the same layer over the course of the `fadeDuration`. Returns the `state`.
Play(AnimationClip) AnimancerState
Stops all other animations on the same layer, plays the `clip`, and returns its state.
Play(AnimationClip, float, FadeMode) AnimancerState
Starts fading in the `clip` while fading out all other states in the same layer over the course of the `fadeDuration`. Returns its state.
Play(ITransition) AnimancerState
Creates a state for the `transition` if it didn't already exist, then calls Animancer.AnimancerComponent.Play(Animancer.AnimancerState) or Animancer.AnimancerComponent.Play(Animancer.AnimancerState,System.Single,Animancer.FadeMode) depending on ITransition.CrossFadeFromStart.
Play(ITransition, float, FadeMode) AnimancerState
Creates a state for the `transition` if it didn't already exist, then calls Animancer.AnimancerComponent.Play(Animancer.AnimancerState) or Animancer.AnimancerComponent.Play(Animancer.AnimancerState,System.Single,Animancer.FadeMode) depending on ITransition.CrossFadeFromStart.
Reset() void
[Editor-Only] Destroys the Animancer.AnimancerComponent.Playable if it was initialized and searches for an Animancer.AnimancerComponent.Animator on this object, or it's children or parents.
Stop() void
Stops all animations and rewinds them to the start.
Stop(AnimancerState) AnimancerState
[Warning] You should not use an Animancer.AnimancerState as a key. Just call Animancer.AnimancerState.Stop.
Stop(AnimationClip) AnimancerState
Gets the state associated with the `clip`, stops and rewinds it to the start, then returns it.
Stop(IHasKey) AnimancerState
Gets the state registered with the Animancer.IHasKey.Key, stops and rewinds it to the start, then returns it.
Stop(Object) AnimancerState
Gets the state associated with the `key`, stops and rewinds it to the start, then returns it.
TryPlay(Object) AnimancerState
Stops all other animations on the same layer, plays the animation registered with the `key`, and returns that state. Or if no state is registered with that `key`, this method does nothing and returns null.
TryPlay(Object, float, FadeMode) AnimancerState
Starts fading in the animation registered with the `key` while fading out all others in the same layer over the course of the `fadeDuration`. Or if no state is registered with that `key`, this method does nothing and returns null.

Operators

Name Value Summary
implicit operator AnimancerLayer(AnimancerComponent) AnimancerLayer
implicit operator AnimancerPlayable(AnimancerComponent) AnimancerPlayable