<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Kybernetik.Animancer.Lite</name>
    </assembly>
    <members>
        <member name="T:Animancer.ControllerState">
            <summary>[Pro-Only]
            An <see cref="T:Animancer.AnimancerState"/> which plays a <see cref="T:UnityEngine.RuntimeAnimatorController"/>.
            </summary>
            <remarks>
            This state can be controlled very similarly to an <see cref="T:UnityEngine.Animator"/>
            via its <see cref="P:Animancer.ControllerState.Playable"/> property.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/animator-controllers">
            Animator Controllers</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/ControllerState
            
            https://kybernetik.com.au/animancer/api/Animancer/ControllerState
            https://kybernetik.com.au/animancer/api/Animancer/ControllerState
            https://kybernetik.com.au/animancer/api/Animancer/ControllerState
        </member>
        <member name="P:Animancer.ControllerState.Controller">
            <summary>The <see cref="T:UnityEngine.RuntimeAnimatorController"/> which this state plays.</summary>
        </member>
        <member name="P:Animancer.ControllerState.MainObject">
            <summary>The <see cref="T:UnityEngine.RuntimeAnimatorController"/> which this state plays.</summary>
        </member>
        <member name="P:Animancer.ControllerState.MainObjectType">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.ControllerState.Playable">
            <summary>The internal system which plays the <see cref="T:UnityEngine.RuntimeAnimatorController"/>.</summary>
        </member>
        <member name="T:Animancer.ControllerState.ActionOnStop">
            <summary>Determines what a layer does when <see cref="M:Animancer.AnimancerNode.Stop"/> is called.</summary>
        </member>
        <member name="F:Animancer.ControllerState.ActionOnStop.DefaultState">
            <summary>Reset the layer to the first state it was in.</summary>
        </member>
        <member name="F:Animancer.ControllerState.ActionOnStop.RewindTime">
            <summary>Rewind the current state's time to 0.</summary>
        </member>
        <member name="F:Animancer.ControllerState.ActionOnStop.Continue">
            <summary>Allow the current state to stay at its current time.</summary>
        </member>
        <member name="P:Animancer.ControllerState.ActionsOnStop">
            <summary>Determines what each layer does when <see cref="M:Animancer.AnimancerNode.Stop"/> is called.</summary>
            <remarks>
            If empty, all layers will reset to their <see cref="F:Animancer.ControllerState.ActionOnStop.DefaultState"/>.
            <para></para>
            If this array is smaller than the <see cref="M:UnityEngine.Animations.AnimatorControllerPlayable.GetLayerCount"/>,
            any additional layers will use the last value in this array.
            </remarks>
        </member>
        <member name="P:Animancer.ControllerState.DefaultStateHashes">
            <summary>
            The <see cref="P:UnityEngine.AnimatorStateInfo.shortNameHash"/> of the default state on each layer,
            used to reset to those states when <see cref="M:Animancer.ControllerState.ApplyActionsOnStop"/>
            is called for layers using <see cref="F:Animancer.ControllerState.ActionOnStop.DefaultState"/>.
            </summary>
            <remarks>Gathered automatically by <see cref="M:Animancer.ControllerState.GatherDefaultStates"/>.</remarks>
        </member>
        <member name="P:Animancer.ControllerState.UnsupportedEventsMessage">
            <summary>[Assert-Only] Animancer Events work badly on <see cref="T:Animancer.ControllerState"/>s.</summary>
        </member>
        <member name="M:Animancer.ControllerState.AssertParameterValue(System.Single,System.String)">
            <summary>[Assert-Conditional] Asserts that the `value` is valid for a parameter.</summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The `value` is NaN or Infinity.</exception>
        </member>
        <member name="M:Animancer.ControllerState.CopyIKFlags(Animancer.AnimancerNodeBase)">
            <summary>IK cannot be dynamically enabled on a <see cref="T:Animancer.ControllerState"/>.</summary>
        </member>
        <member name="P:Animancer.ControllerState.ApplyAnimatorIK">
            <summary>IK cannot be dynamically enabled on a <see cref="T:Animancer.ControllerState"/>.</summary>
        </member>
        <member name="P:Animancer.ControllerState.ApplyFootIK">
            <summary>IK cannot be dynamically enabled on a <see cref="T:Animancer.ControllerState"/>.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetParameterHash(System.Int32)">
            <summary>Returns the hash of a parameter being wrapped by this state.</summary>
            <exception cref="T:System.NotSupportedException">This state doesn't wrap any parameters.</exception>
        </member>
        <member name="M:Animancer.ControllerState.GetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ControllerState.SetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ControllerState.#ctor(UnityEngine.RuntimeAnimatorController)">
            <summary>Creates a new <see cref="T:Animancer.ControllerState"/> to play the `controller`.</summary>
        </member>
        <member name="M:Animancer.ControllerState.#ctor(UnityEngine.RuntimeAnimatorController,Animancer.ControllerState.ActionOnStop[])">
            <summary>Creates a new <see cref="T:Animancer.ControllerState"/> to play the `controller`.</summary>
        </member>
        <member name="M:Animancer.ControllerState.CreatePlayable(UnityEngine.Playables.Playable@)">
            <summary>Creates and assigns the <see cref="T:UnityEngine.Animations.AnimatorControllerPlayable"/> managed by this state.</summary>
        </member>
        <member name="M:Animancer.ControllerState.RecreatePlayable">
            <summary>
            Stores the values of all parameters and calls <see cref="M:Animancer.AnimancerNode.RecreatePlayable"/>,
            then restores the parameter values.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.GetStateInfo(System.Int32)">
            <summary>
            Returns the current state on the specified `layer`,
            or the next state if it is currently in a transition.
            </summary>
        </member>
        <member name="P:Animancer.ControllerState.RawTime">
            <summary>
            The <see cref="P:UnityEngine.AnimatorStateInfo.normalizedTime"/> * <see cref="P:UnityEngine.AnimatorStateInfo.length"/> of layer 0.
            </summary>
        </member>
        <member name="P:Animancer.ControllerState.Animancer#IUpdatable#UpdatableIndex">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ControllerState.Animancer#IUpdatable#Update">
            <summary>Pauses the <see cref="P:Animancer.ControllerState.Playable"/> if necessary after <see cref="P:Animancer.ControllerState.RawTime"/> was set.</summary>
        </member>
        <member name="M:Animancer.ControllerState.SetGraph(Animancer.AnimancerGraph)">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.ControllerState.Length">
            <summary>The current <see cref="P:UnityEngine.AnimatorStateInfo.length"/> of layer 0.</summary>
        </member>
        <member name="P:Animancer.ControllerState.IsLooping">
            <summary>The current <see cref="P:UnityEngine.AnimatorStateInfo.loop"/> of layer 0.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetEventDispatchInfo(System.Single@,System.Single@,System.Boolean@)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ControllerState.GatherDefaultStates">
            <summary>Gathers the <see cref="P:Animancer.ControllerState.DefaultStateHashes"/> from the current states on each layer.</summary>
            <remarks>This is called by <see cref="M:Animancer.ControllerState.CreatePlayable(UnityEngine.Playables.Playable@)"/>.</remarks>
        </member>
        <member name="M:Animancer.ControllerState.StopWithoutWeight">
            <summary>
            Stops the animation and makes it inactive immediately so it no longer affects the output.
            Also calls <see cref="M:Animancer.ControllerState.ApplyActionsOnStop"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.ApplyActionsOnStop">
            <summary>Applies the <see cref="P:Animancer.ControllerState.ActionsOnStop"/> to their corresponding layers.</summary>
            <exception cref="T:System.NullReferenceException"><see cref="P:Animancer.ControllerState.DefaultStateHashes"/> is null.</exception>
        </member>
        <member name="M:Animancer.ControllerState.GatherAnimationClips(System.Collections.Generic.ICollection{UnityEngine.AnimationClip})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ControllerState.Destroy">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ControllerState.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ControllerState.CopyFrom(Animancer.AnimancerState,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ControllerState.CopyFrom(Animancer.ControllerState,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="F:Animancer.ControllerState.DefaultFadeDuration">
            <summary>
            The default constant for fade duration parameters which causes it to use the
            <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/> instead.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.GetFadeDuration(System.Single)">
            <summary>
            Returns the `fadeDuration` if it is zero or positive.
            Otherwise returns the <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.CrossFade(System.Int32,System.Single,System.Int32,System.Single)">
            <summary>Starts a transition from the current state to the specified state using normalized times.</summary>
            <remarks>If `fadeDuration` is negative, it uses the <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/>.</remarks>
        </member>
        <member name="M:Animancer.ControllerState.CrossFade(System.String,System.Single,System.Int32,System.Single)">
            <summary>Starts a transition from the current state to the specified state using normalized times.</summary>
            <remarks>If `fadeDuration` is negative, it uses the <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/>.</remarks>
        </member>
        <member name="M:Animancer.ControllerState.CrossFadeInFixedTime(System.Int32,System.Single,System.Int32,System.Single)">
            <summary>Starts a transition from the current state to the specified state using times in seconds.</summary>
            <remarks>If `fadeDuration` is negative, it uses the <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/>.</remarks>
        </member>
        <member name="M:Animancer.ControllerState.CrossFadeInFixedTime(System.String,System.Single,System.Int32,System.Single)">
            <summary>Starts a transition from the current state to the specified state using times in seconds.</summary>
            <remarks>If `fadeDuration` is negative, it uses the <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/>.</remarks>
        </member>
        <member name="M:Animancer.ControllerState.Play(System.Int32,System.Int32,System.Single)">
            <summary>Plays the specified state immediately, starting from a particular normalized time.</summary>
        </member>
        <member name="M:Animancer.ControllerState.Play(System.String,System.Int32,System.Single)">
            <summary>Plays the specified state immediately, starting from a particular normalized time.</summary>
        </member>
        <member name="M:Animancer.ControllerState.PlayInFixedTime(System.Int32,System.Int32,System.Single)">
            <summary>Plays the specified state immediately, starting from a particular time (in seconds).</summary>
        </member>
        <member name="M:Animancer.ControllerState.PlayInFixedTime(System.String,System.Int32,System.Single)">
            <summary>Plays the specified state immediately, starting from a particular time (in seconds).</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetBool(System.Int32)">
            <summary>Gets the value of the specified boolean parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetBool(System.String)">
            <summary>Gets the value of the specified boolean parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.SetBool(System.Int32,System.Boolean)">
            <summary>Sets the value of the specified boolean parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.SetBool(System.String,System.Boolean)">
            <summary>Sets the value of the specified boolean parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetFloat(System.Int32)">
            <summary>Gets the value of the specified float parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetFloat(System.String)">
            <summary>Gets the value of the specified float parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.SetFloat(System.Int32,System.Single)">
            <summary>Sets the value of the specified float parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.SetFloat(System.String,System.Single)">
            <summary>Sets the value of the specified float parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetInteger(System.Int32)">
            <summary>Gets the value of the specified integer parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetInteger(System.String)">
            <summary>Gets the value of the specified integer parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.SetInteger(System.Int32,System.Int32)">
            <summary>Sets the value of the specified integer parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.SetInteger(System.String,System.Int32)">
            <summary>Sets the value of the specified integer parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.SetTrigger(System.Int32)">
            <summary>Sets the specified trigger parameter to true.</summary>
        </member>
        <member name="M:Animancer.ControllerState.SetTrigger(System.String)">
            <summary>Sets the specified trigger parameter to true.</summary>
            
        </member>
        <member name="M:Animancer.ControllerState.ResetTrigger(System.Int32)">
            <summary>Resets the specified trigger parameter to false.</summary>
            
        </member>
        <member name="M:Animancer.ControllerState.ResetTrigger(System.String)">
            <summary>Resets the specified trigger parameter to false.</summary>
            
        </member>
        <member name="M:Animancer.ControllerState.IsParameterControlledByCurve(System.Int32)">
            <summary>Indicates whether the specified parameter is controlled by an <see cref="T:UnityEngine.AnimationClip"/>.</summary>
        </member>
        <member name="M:Animancer.ControllerState.IsParameterControlledByCurve(System.String)">
            <summary>Indicates whether the specified parameter is controlled by an <see cref="T:UnityEngine.AnimationClip"/>.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetParameter(System.Int32)">
            <summary>Gets the details of one of the <see cref="P:Animancer.ControllerState.Controller"/>'s parameters.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetParameterCount">
            <summary>Gets the number of parameters in the <see cref="P:Animancer.ControllerState.Controller"/>.</summary>
        </member>
        <member name="P:Animancer.ControllerState.parameterCount">
            <summary>The number of parameters in the <see cref="P:Animancer.ControllerState.Controller"/>.</summary>
        </member>
        <member name="P:Animancer.ControllerState.parameters">
            <summary>The parameters in the <see cref="P:Animancer.ControllerState.Controller"/>.</summary>
            <remarks>
            This property allocates a new array when first accessed. To avoid that, you can use
            <see cref="M:Animancer.ControllerState.GetParameterCount"/> and <see cref="M:Animancer.ControllerState.GetParameter(System.Int32)"/> instead.
            </remarks>
        </member>
        <member name="M:Animancer.ControllerState.SetFloat(System.String,System.Single,System.Single,System.Single,System.Single)">
            <summary>Sets the value of the specified float parameter with smoothing.</summary>
            <remarks>Consider using a <see cref="T:Animancer.ControllerState.DampedFloatParameter"/> instead.</remarks>
        </member>
        <member name="M:Animancer.ControllerState.SetFloat(System.Int32,System.Single,System.Single,System.Single,System.Single)">
            <summary>Sets the value of the specified float parameter with smoothing.</summary>
            <remarks>Consider using a <see cref="T:Animancer.ControllerState.DampedFloatParameter"/> instead.</remarks>
        </member>
        <member name="M:Animancer.ControllerState.CopySmoothingVelocitiesFrom(Animancer.ControllerState)">
            <summary>Copies the smoothing velocities.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetLayerWeight(System.Int32)">
            <summary>Gets the weight of the layer at the specified index.</summary>
        </member>
        <member name="M:Animancer.ControllerState.SetLayerWeight(System.Int32,System.Single)">
            <summary>Sets the weight of the layer at the specified index.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetLayerCount">
            <summary>Gets the number of layers in the <see cref="P:Animancer.ControllerState.Controller"/>.</summary>
        </member>
        <member name="P:Animancer.ControllerState.layerCount">
            <summary>The number of layers in the <see cref="P:Animancer.ControllerState.Controller"/>.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetLayerIndex(System.String)">
            <summary>Gets the index of the layer with the specified name.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetLayerName(System.Int32)">
            <summary>Gets the name of the layer with the specified index.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetCurrentAnimatorStateInfo(System.Int32)">
            <summary>Returns information about the current state.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetNextAnimatorStateInfo(System.Int32)">
            <summary>Returns information about the next state being transitioned towards.</summary>
        </member>
        <member name="M:Animancer.ControllerState.HasState(System.Int32,System.Int32)">
            <summary>Indicates whether the specified layer contains the specified state.</summary>
        </member>
        <member name="M:Animancer.ControllerState.IsInTransition(System.Int32)">
            <summary>Indicates whether the specified layer is currently executing a transition.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetAnimatorTransitionInfo(System.Int32)">
            <summary>Gets information about the current transition.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetCurrentAnimatorClipInfo(System.Int32)">
            <summary>Gets information about the <see cref="T:UnityEngine.AnimationClip"/>s currently being played.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetCurrentAnimatorClipInfo(System.Int32,System.Collections.Generic.List{UnityEngine.AnimatorClipInfo})">
            <summary>Gets information about the <see cref="T:UnityEngine.AnimationClip"/>s currently being played.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetCurrentAnimatorClipInfoCount(System.Int32)">
            <summary>Gets the number of <see cref="T:UnityEngine.AnimationClip"/>s currently being played.</summary>
            
        </member>
        <member name="M:Animancer.ControllerState.GetNextAnimatorClipInfo(System.Int32)">
            <summary>Gets information about the <see cref="T:UnityEngine.AnimationClip"/>s currently being transitioned towards.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetNextAnimatorClipInfo(System.Int32,System.Collections.Generic.List{UnityEngine.AnimatorClipInfo})">
            <summary>Gets information about the <see cref="T:UnityEngine.AnimationClip"/>s currently being transitioned towards.</summary>
        </member>
        <member name="M:Animancer.ControllerState.GetNextAnimatorClipInfoCount(System.Int32)">
            <summary>Gets the number of <see cref="T:UnityEngine.AnimationClip"/>s currently being transitioned towards.</summary>
        </member>
        <member name="T:Animancer.ControllerState.DampedFloatParameter">
            <summary>
            A wrapper for <see cref="M:UnityEngine.Mathf.SmoothDamp(System.Single,System.Single,System.Single@,System.Single,System.Single,System.Single)"/>
            to control a float parameter in a <see cref="T:Animancer.ControllerState"/> similar to
            <see cref="M:Animancer.ControllerState.SetFloat(System.Int32,System.Single,System.Single,System.Single,System.Single)"/>.
            </summary>
        </member>
        <member name="F:Animancer.ControllerState.DampedFloatParameter.parameter">
            <summary>The name of this parameter.</summary>
        </member>
        <member name="F:Animancer.ControllerState.DampedFloatParameter.smoothTime">
            <summary>The amount of time allowed to smooth out a value change.</summary>
        </member>
        <member name="F:Animancer.ControllerState.DampedFloatParameter.currentValue">
            <summary>The last value the parameter was set to.</summary>
        </member>
        <member name="F:Animancer.ControllerState.DampedFloatParameter.targetValue">
            <summary>The value that the parameter is moving towards.</summary>
        </member>
        <member name="F:Animancer.ControllerState.DampedFloatParameter.maxSpeed">
            <summary>The maximum speed that the current value can move towards the target.</summary>
        </member>
        <member name="F:Animancer.ControllerState.DampedFloatParameter.velocity">
            <summary>The speed at which the value is currently moving.</summary>
        </member>
        <member name="M:Animancer.ControllerState.DampedFloatParameter.#ctor(Animancer.ControllerState.ParameterID,System.Single,System.Single,System.Single)">
            <summary>Creates a new <see cref="T:Animancer.ControllerState.DampedFloatParameter"/>.</summary>
        </member>
        <member name="M:Animancer.ControllerState.DampedFloatParameter.Apply(Animancer.ControllerState)">
            <summary>Updates the target parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.DampedFloatParameter.Apply(Animancer.ControllerState,System.Single)">
            <summary>Updates the target parameter.</summary>
        </member>
        <member name="P:Animancer.ControllerState.SerializedParameterBindings">
            <summary>Serialized data used to create <see cref="T:Animancer.ControllerState.ParameterBinding`1"/>s at runtime.</summary>
        </member>
        <member name="M:Animancer.ControllerState.DeserializeParameterBindings">
            <summary>Deserializes the <see cref="P:Animancer.ControllerState.SerializedParameterBindings"/>.</summary>
        </member>
        <member name="M:Animancer.ControllerState.AddParameterBinding(System.IDisposable)">
            <summary>
            Adds an object to a list for <see cref="M:System.IDisposable.Dispose"/>
            to be called in <see cref="M:Animancer.ControllerState.Destroy"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.DisposeParameterBindings">
            <summary>Disposes everything added by <see cref="M:Animancer.ControllerState.AddParameterBinding(System.IDisposable)"/>.</summary>
        </member>
        <member name="M:Animancer.ControllerState.BindAllParameters">
            <summary>
            Configures all parameters in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter with the same name in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.BindParameter(Animancer.StringReference)">
            <summary>
            Configures a parameter in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter with the same name in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.BindParameter(Animancer.StringReference,System.String)">
            <summary>
            Configures a parameter in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.BindParameter(Animancer.StringReference,System.Int32)">
            <summary>
            Configures a parameter in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.BindParameter(Animancer.StringReference,UnityEngine.AnimatorControllerParameter)">
            <summary>
            Configures all parameters in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter with the same name in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.BindBool(Animancer.StringReference)">
            <summary>
            Configures a parameter in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter with the same name in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.BindBool(Animancer.StringReference,System.String)">
            <summary>
            Configures a parameter in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.BindBool(Animancer.StringReference,System.Int32)">
            <summary>
            Configures a parameter in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.BindFloat(Animancer.StringReference)">
            <summary>
            Configures a parameter in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter with the same name in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.BindFloat(Animancer.StringReference,System.String)">
            <summary>
            Configures a parameter in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.BindFloat(Animancer.StringReference,System.Int32)">
            <summary>
            Configures a parameter in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.BindInt(Animancer.StringReference)">
            <summary>
            Configures a parameter in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter with the same name in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.BindInt(Animancer.StringReference,System.String)">
            <summary>
            Configures a parameter in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.BindInt(Animancer.StringReference,System.Int32)">
            <summary>
            Configures a parameter in the <see cref="P:Animancer.ControllerState.Controller"/>
            to follow the value of a parameter in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
        </member>
        <member name="T:Animancer.ControllerState.ParameterBinding`1">
            <summary>An <see cref="T:System.IDisposable"/> binding to <see cref="E:Animancer.Parameter`1.OnValueChanged"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ParameterBinding_1
        </member>
        <member name="F:Animancer.ControllerState.ParameterBinding`1.Parameter">
            <summary>The parameter being watched.</summary>
        </member>
        <member name="F:Animancer.ControllerState.ParameterBinding`1.OnParameterChanged">
            <summary>The callback to invoke when the parameter changes.</summary>
        </member>
        <member name="M:Animancer.ControllerState.ParameterBinding`1.#ctor(Animancer.Parameter{`0},System.Action{`0})">
            <summary>
            Invokes `onParameterChanged` and adds it to the <see cref="E:Animancer.Parameter`1.OnValueChanged"/>
            to be removed by <see cref="M:Animancer.ControllerState.ParameterBinding`1.Dispose"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.ParameterBinding`1.Dispose">
            <summary>
            Removes <see cref="F:Animancer.ControllerState.ParameterBinding`1.OnParameterChanged"/> from the <see cref="E:Animancer.Parameter`1.OnValueChanged"/>.
            </summary>
        </member>
        <member name="T:Animancer.ControllerState.SerializableParameterBindings">
            <summary>
            A serializable array of data which can create <see cref="T:Animancer.ControllerState.ParameterBinding`1"/>s at runtime.
            </summary>
            <remarks>
            This data contains a <see cref="P:Animancer.ControllerState.SerializableParameterBindings.Bindings"/> array and <see cref="P:Animancer.ControllerState.SerializableParameterBindings.Mode"/> flag:
            <list type="bullet">
            
            <item>
            If the array is empty,
            <c>true</c> will bind all parameters by name
            and <c>false</c> will bind nothing.
            </item>
            
            <item>
            Otherwise, <c>true</c> will bind <c>[i * 2]</c> in the <see cref="T:UnityEngine.RuntimeAnimatorController"/>
            to <c>[i * 2 + 1]</c> in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </item>
            
            <item>
            And <c>false</c> will bind each of its parameters to the same name in both systems.
            </item>
            
            </list>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/SerializableParameterBindings
        </member>
        <member name="P:Animancer.ControllerState.SerializableParameterBindings.Mode">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>]
            Modifies the way the <see cref="P:Animancer.ControllerState.SerializableParameterBindings.Bindings"/> array is interpreted.
            </summary>
            <remarks>See the <see cref="T:Animancer.ControllerState.SerializableParameterBindings"/> class for details.</remarks>
        </member>
        <member name="F:Animancer.ControllerState.SerializableParameterBindings.ModeFieldName">
            <summary>[Editor-Only] The name of the serialized backing field of <see cref="P:Animancer.ControllerState.SerializableParameterBindings.Mode"/>.</summary>
        </member>
        <member name="P:Animancer.ControllerState.SerializableParameterBindings.BindAllParameters">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>]
            Should all parameters in the <see cref="T:UnityEngine.RuntimeAnimatorController"/> be bound by name?
            </summary>
            <remarks>See the <see cref="T:Animancer.ControllerState.SerializableParameterBindings"/> class for details.</remarks>
        </member>
        <member name="P:Animancer.ControllerState.SerializableParameterBindings.RebindNames">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>]
            Should the <see cref="P:Animancer.ControllerState.SerializableParameterBindings.Bindings"/> be grouped into pairs
            to bind each <see cref="T:UnityEngine.RuntimeAnimatorController"/> parameter
            to the subsequent parameter in <see cref="P:Animancer.AnimancerGraph.Parameters"/>?
            </summary>
            <remarks>See the <see cref="T:Animancer.ControllerState.SerializableParameterBindings"/> class for details.</remarks>
        </member>
        <member name="P:Animancer.ControllerState.SerializableParameterBindings.Bindings">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>]
            Parameter names used to have parameters in the <see cref="T:UnityEngine.RuntimeAnimatorController"/>
            follow the value of parameters in the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.
            </summary>
            <remarks>See the <see cref="T:Animancer.ControllerState.SerializableParameterBindings"/> class for details.</remarks>
        </member>
        <member name="F:Animancer.ControllerState.SerializableParameterBindings.BindingsFieldName">
            <summary>[Editor-Only] The name of the serialized backing field of <see cref="P:Animancer.ControllerState.SerializableParameterBindings.Bindings"/>.</summary>
        </member>
        <member name="M:Animancer.ControllerState.SerializableParameterBindings.Deserialize(Animancer.ControllerState)">
            <summary>Creates runtime bindings for the `state`.</summary>
            <remarks>See the <see cref="T:Animancer.ControllerState.SerializableParameterBindings"/> class for details.</remarks>
        </member>
        <member name="M:Animancer.ControllerState.SerializableParameterBindings.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.ControllerState.ParameterID">
            <summary>A wrapper for the name and hash of an <see cref="T:UnityEngine.AnimatorControllerParameter"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ParameterID
        </member>
        <member name="F:Animancer.ControllerState.ParameterID.Name">
            <summary>The name of this parameter.</summary>
        </member>
        <member name="F:Animancer.ControllerState.ParameterID.Hash">
            <summary>The name hash of this parameter.</summary>
        </member>
        <member name="M:Animancer.ControllerState.ParameterID.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:Animancer.ControllerState.ParameterID"/> with the specified <see cref="F:Animancer.ControllerState.ParameterID.Name"/> and uses
            <see cref="M:UnityEngine.Animator.StringToHash(System.String)"/> to calculate the <see cref="F:Animancer.ControllerState.ParameterID.Hash"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.ParameterID.#ctor(System.Int32)">
            <summary>
            Creates a new <see cref="T:Animancer.ControllerState.ParameterID"/> with the specified
            <see cref="F:Animancer.ControllerState.ParameterID.Hash"/> but leaves the <see cref="F:Animancer.ControllerState.ParameterID.Name"/> null.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.ParameterID.#ctor(System.String,System.Int32)">
            <summary>
            Creates a new <see cref="T:Animancer.ControllerState.ParameterID"/> with the specified
            <see cref="F:Animancer.ControllerState.ParameterID.Name"/> and <see cref="F:Animancer.ControllerState.ParameterID.Hash"/>.
            </summary>
            <remarks>This constructor doesn't verify that the `hash` actually corresponds to the `name`.</remarks>
        </member>
        <member name="M:Animancer.ControllerState.ParameterID.op_Implicit(System.String)~Animancer.ControllerState.ParameterID">
            <summary>
            Creates a new <see cref="T:Animancer.ControllerState.ParameterID"/> with the specified <see cref="F:Animancer.ControllerState.ParameterID.Name"/> and uses
            <see cref="M:UnityEngine.Animator.StringToHash(System.String)"/> to calculate the <see cref="F:Animancer.ControllerState.ParameterID.Hash"/>.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.ParameterID.op_Implicit(System.Int32)~Animancer.ControllerState.ParameterID">
            <summary>
            Creates a new <see cref="T:Animancer.ControllerState.ParameterID"/> with the specified <see cref="F:Animancer.ControllerState.ParameterID.Hash"/> and leaves the
            <see cref="F:Animancer.ControllerState.ParameterID.Name"/> null.
            </summary>
        </member>
        <member name="M:Animancer.ControllerState.ParameterID.op_Implicit(Animancer.ControllerState.ParameterID)~System.Int32">
            <summary>Returns the <see cref="F:Animancer.ControllerState.ParameterID.Hash"/>.</summary>
        </member>
        <member name="M:Animancer.ControllerState.ParameterID.ValidateHasParameter(UnityEngine.RuntimeAnimatorController,UnityEngine.AnimatorControllerParameterType)">
            <summary>[Editor-Conditional]
            Throws if the `controller` doesn't have a parameter with the specified <see cref="F:Animancer.ControllerState.ParameterID.Hash"/>
            and `type`.
            </summary>
            <exception cref="T:System.ArgumentException"/>
        </member>
        <member name="M:Animancer.ControllerState.ParameterID.GetParameterDetails(UnityEngine.RuntimeAnimatorController)">
            <summary>[Editor-Only] Returns the hash mapped to the type of all parameters in the `controller`.</summary>
            <remarks>This doesn't work for if the `controller` was loaded from an Asset Bundle.</remarks>
        </member>
        <member name="M:Animancer.ControllerState.ParameterID.ToString">
            <summary>Returns a string containing the <see cref="F:Animancer.ControllerState.ParameterID.Name"/> and <see cref="F:Animancer.ControllerState.ParameterID.Hash"/>.</summary>
        </member>
        <member name="T:Animancer.Float1ControllerState">
            <summary>[Pro-Only] A <see cref="T:Animancer.ControllerState"/> which manages one float parameter.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/animator-controllers">
            Animator Controllers</see>
            </remarks>
            <seealso cref="T:Animancer.Float2ControllerState"/>
            <seealso cref="T:Animancer.Float3ControllerState"/>
            https://kybernetik.com.au/animancer/api/Animancer/Float1ControllerState
            
        </member>
        <member name="P:Animancer.Float1ControllerState.ParameterID">
            <summary>The identifier of the parameter which <see cref="P:Animancer.Float1ControllerState.Parameter"/> will get and set.</summary>
        </member>
        <member name="P:Animancer.Float1ControllerState.Parameter">
            <summary>
            Gets and sets a float parameter in the <see cref="P:Animancer.ControllerState.Controller"/> using the
            <see cref="P:Animancer.Float1ControllerState.ParameterID"/>.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value is NaN or Infinity.</exception>
        </member>
        <member name="M:Animancer.Float1ControllerState.#ctor(UnityEngine.RuntimeAnimatorController,Animancer.ControllerState.ParameterID,Animancer.ControllerState.ActionOnStop[])">
            <summary>Creates a new <see cref="T:Animancer.Float1ControllerState"/> to play the `controller`.</summary>
        </member>
        <member name="M:Animancer.Float1ControllerState.#ctor(UnityEngine.RuntimeAnimatorController,Animancer.ControllerState.ParameterID)">
            <summary>Creates a new <see cref="T:Animancer.Float1ControllerState"/> to play the `controller`.</summary>
        </member>
        <member name="M:Animancer.Float1ControllerState.GetParameterHash(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Float1ControllerState.GetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Float1ControllerState.SetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Float1ControllerState.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Float2ControllerState">
            <summary>[Pro-Only] A <see cref="T:Animancer.ControllerState"/> which manages two float parameters.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/animator-controllers">
            Animator Controllers</see>
            </remarks>
            <seealso cref="T:Animancer.Float1ControllerState"/>
            <seealso cref="T:Animancer.Float3ControllerState"/>
            https://kybernetik.com.au/animancer/api/Animancer/Float2ControllerState
            
        </member>
        <member name="P:Animancer.Float2ControllerState.ParameterXID">
            <summary>The identifier of the parameter which <see cref="P:Animancer.Float2ControllerState.ParameterX"/> will get and set.</summary>
        </member>
        <member name="P:Animancer.Float2ControllerState.ParameterX">
            <summary>
            Gets and sets a float parameter in the <see cref="P:Animancer.ControllerState.Controller"/> using the
            <see cref="P:Animancer.Float2ControllerState.ParameterXID"/>.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value is NaN or Infinity.</exception>
        </member>
        <member name="P:Animancer.Float2ControllerState.ParameterYID">
            <summary>The identifier of the parameter which <see cref="P:Animancer.Float2ControllerState.ParameterY"/> will get and set.</summary>
        </member>
        <member name="P:Animancer.Float2ControllerState.ParameterY">
            <summary>
            Gets and sets a float parameter in the <see cref="P:Animancer.ControllerState.Controller"/> using the
            <see cref="P:Animancer.Float2ControllerState.ParameterYID"/>.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value is NaN or Infinity.</exception>
        </member>
        <member name="P:Animancer.Float2ControllerState.Parameter">
            <summary>
            Gets and sets <see cref="P:Animancer.Float2ControllerState.ParameterX"/> and <see cref="P:Animancer.Float2ControllerState.ParameterY"/>.
            </summary>
        </member>
        <member name="M:Animancer.Float2ControllerState.#ctor(UnityEngine.RuntimeAnimatorController,Animancer.ControllerState.ParameterID,Animancer.ControllerState.ParameterID,Animancer.ControllerState.ActionOnStop[])">
            <summary>Creates a new <see cref="T:Animancer.Float2ControllerState"/> to play the `controller`.</summary>
        </member>
        <member name="M:Animancer.Float2ControllerState.#ctor(UnityEngine.RuntimeAnimatorController,Animancer.ControllerState.ParameterID,Animancer.ControllerState.ParameterID)">
            <summary>Creates a new <see cref="T:Animancer.Float2ControllerState"/> to play the `controller`.</summary>
        </member>
        <member name="M:Animancer.Float2ControllerState.GetParameterHash(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Float2ControllerState.GetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Float2ControllerState.SetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Float2ControllerState.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Float3ControllerState">
            <summary>[Pro-Only] A <see cref="T:Animancer.ControllerState"/> which manages three float parameters.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/animator-controllers">
            Animator Controllers</see>
            </remarks>
            <seealso cref="T:Animancer.Float1ControllerState"/>
            <seealso cref="T:Animancer.Float2ControllerState"/>
            https://kybernetik.com.au/animancer/api/Animancer/Float3ControllerState
            
        </member>
        <member name="P:Animancer.Float3ControllerState.ParameterXID">
            <summary>The identifier of the parameter which <see cref="P:Animancer.Float3ControllerState.ParameterX"/> will get and set.</summary>
        </member>
        <member name="P:Animancer.Float3ControllerState.ParameterX">
            <summary>
            Gets and sets a float parameter in the <see cref="P:Animancer.ControllerState.Controller"/> using the
            <see cref="P:Animancer.Float3ControllerState.ParameterXID"/>.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value is NaN or Infinity.</exception>
        </member>
        <member name="P:Animancer.Float3ControllerState.ParameterYID">
            <summary>The identifier of the parameter which <see cref="P:Animancer.Float3ControllerState.ParameterY"/> will get and set.</summary>
        </member>
        <member name="P:Animancer.Float3ControllerState.ParameterY">
            <summary>
            Gets and sets a float parameter in the <see cref="P:Animancer.ControllerState.Controller"/> using the
            <see cref="P:Animancer.Float3ControllerState.ParameterYID"/>.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value is NaN or Infinity.</exception>
        </member>
        <member name="P:Animancer.Float3ControllerState.ParameterZID">
            <summary>The identifier of the parameter which <see cref="P:Animancer.Float3ControllerState.ParameterZ"/> will get and set.</summary>
        </member>
        <member name="P:Animancer.Float3ControllerState.ParameterZ">
            <summary>
            Gets and sets a float parameter in the <see cref="P:Animancer.ControllerState.Controller"/> using the
            <see cref="P:Animancer.Float3ControllerState.ParameterZID"/>.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value is NaN or Infinity.</exception>
        </member>
        <member name="P:Animancer.Float3ControllerState.Parameter">
            <summary>
            Gets and sets <see cref="P:Animancer.Float3ControllerState.ParameterX"/>, <see cref="P:Animancer.Float3ControllerState.ParameterY"/>, and <see cref="P:Animancer.Float3ControllerState.ParameterZ"/>.
            </summary>
        </member>
        <member name="M:Animancer.Float3ControllerState.#ctor(UnityEngine.RuntimeAnimatorController,Animancer.ControllerState.ParameterID,Animancer.ControllerState.ParameterID,Animancer.ControllerState.ParameterID,Animancer.ControllerState.ActionOnStop[])">
            <summary>Creates a new <see cref="T:Animancer.Float3ControllerState"/> to play the `controller`.</summary>
        </member>
        <member name="M:Animancer.Float3ControllerState.#ctor(UnityEngine.RuntimeAnimatorController,Animancer.ControllerState.ParameterID,Animancer.ControllerState.ParameterID,Animancer.ControllerState.ParameterID)">
            <summary>Creates a new <see cref="T:Animancer.Float3ControllerState"/> to play the `controller`.</summary>
        </member>
        <member name="M:Animancer.Float3ControllerState.GetParameterHash(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Float3ControllerState.GetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Float3ControllerState.SetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Float3ControllerState.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.AnimancerGraph">
            <summary>The root node which manages Animancer's <see cref="T:UnityEngine.Playables.PlayableGraph"/>.</summary>
            
            <remarks>
            This class can be used as a custom yield instruction to wait until all animations finish playing.
            <para></para>
            The most common way to access this class is via <see cref="!:AnimancerComponent.Graph"/>.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/playing">
            Playing Animations</see>
            </remarks>
            
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerGraph
            
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerGraph
        </member>
        <member name="F:Animancer.AnimancerGraph.DefaultFadeDurationNamespace">
            <summary>[Editor-Only]
            The namespace that should be used for a class which sets the <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/>.
            </summary>
        </member>
        <member name="F:Animancer.AnimancerGraph.DefaultFadeDurationClass">
            <summary>[Editor-Only]
            The name that should be used for a class which sets the <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.#cctor">
            <summary>[Editor-Only]
            Initializes the <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/> (see its example for more information).
            </summary>
            <remarks>
            This method takes about 2 milliseconds if a <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/> class exists, or 0 if it
            doesn't (less than 0.5 rounded off according to a <see cref="T:System.Diagnostics.Stopwatch"/>).
            <para></para>
            The <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/> can't simply be stored in the
            <see cref="!:Editor.AnimancerSettings"/> because it needs to be initialized before Unity is able to load
            <see cref="T:UnityEngine.ScriptableObject"/>s.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerGraph.DefaultFadeDuration">
            <summary>The fade duration to use if not specified. Default is 0.25.</summary>
            
            <exception cref="T:UnityEngine.Assertions.AssertionException">The value is negative or infinity.</exception>
            
            <remarks>
            <em>Animancer Lite doesn't allow this value to be changed in runtime builds (except to 0).</em>
            <para></para>
            <strong>Example:</strong>
            <see cref="T:UnityEngine.Sprite"/> based games often have no use for fading so you could set this value to 0 using the
            following script so that you don't need to manually set the <see cref="P:Animancer.ITransition.FadeDuration"/> of all
            your transitions.
            <para></para>
            To set this value automatically on startup, put the following class into any script:
            <para></para><code>
            namespace Animancer
            {
                internal static class DefaultFadeDuration
                {
                    [UnityEngine.RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.BeforeSceneLoad)]
                    private static void Initialize() => AnimancerGraph.DefaultFadeDuration = 0;
                }
            }
            </code>
            Using that specific namespace (<see cref="F:Animancer.AnimancerGraph.DefaultFadeDurationNamespace"/>) and class name
            (<see cref="F:Animancer.AnimancerGraph.DefaultFadeDurationClass"/>) allows Animancer to find and run it immediately in the Unity
            Editor so that newly created transition fields can start with the correct value (using a
            <c>[UnityEditor.InitializeOnLoadMethod]</c> attribute would run it too late).
            </remarks>
        </member>
        <member name="F:Animancer.AnimancerGraph._PlayableGraph">
            <summary>[Internal]
            The <see cref="T:UnityEngine.Playables.PlayableGraph"/> containing this <see cref="T:Animancer.AnimancerGraph"/>.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.PlayableGraph">
            <summary>[Pro-Only]
            The <see cref="T:UnityEngine.Playables.PlayableGraph"/> containing this <see cref="T:Animancer.AnimancerGraph"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.op_Implicit(Animancer.AnimancerGraph)~UnityEngine.Playables.PlayableGraph">
            <summary>Returns the <see cref="P:Animancer.AnimancerGraph.PlayableGraph"/>.</summary>
        </member>
        <member name="F:Animancer.AnimancerGraph._PreUpdatePlayable">
            <summary>[Internal]
            The <see cref="T:UnityEngine.Playables.Playable"/> of the pre-update <see cref="T:Animancer.UpdatableListPlayable"/>.
            </summary>
            <remarks>
            This is the final <see cref="T:UnityEngine.Playables.Playable"/> connected to the output of the <see cref="P:Animancer.AnimancerGraph.PlayableGraph"/>.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerGraph.Layer">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.AnimancerGraph.ChildCount">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerGraph.GetChildNode(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.AnimancerGraph.Layers">
            <summary>The <see cref="T:Animancer.AnimancerLayer"/>s which each manage their own set of animations.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/blending/layers">
            Layers</see>
            </remarks>
        </member>
        <member name="F:Animancer.AnimancerGraph.States">
            <summary>The <see cref="T:Animancer.AnimancerState"/>s managed by this graph.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/playing/states">
            States</see>
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerGraph.Parameters">
            <summary>Dynamic parameters which anything can get or set.</summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.HasParameters">
            <summary>Has the <see cref="P:Animancer.AnimancerGraph.Parameters"/> dictionary been initialized?</summary>
        </member>
        <member name="F:Animancer.AnimancerGraph._Events">
            <summary>[Internal] The backing field of <see cref="P:Animancer.AnimancerGraph.Events"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.Events">
            <summary>A dictionary of callbacks to be triggered by any event with a matching name.</summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.HasEvents">
            <summary>Has the <see cref="P:Animancer.AnimancerGraph.Events"/> dictionary been initialized?</summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.Transitions">
            <summary>[Pro-Only] The optional <see cref="T:Animancer.TransitionLibraries.TransitionLibrary"/> this graph can use.</summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.PreUpdatables">
            <summary>Objects to be updated before time advances.</summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.PostUpdatables">
            <summary>Objects to be updated after time advances.</summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.Component">
            <summary>The component that is playing this <see cref="T:Animancer.AnimancerGraph"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.UpdateMode">
            <summary>Determines what time source is used to update the <see cref="T:UnityEngine.Playables.PlayableGraph"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.KeepChildrenConnected">
            <summary>
            Should playables stay connected to the graph at all times?
            Otherwise they will be disconnected when their  <see cref="P:Animancer.AnimancerNode.Weight"/> is 0.
            </summary>
            
            <remarks>
            This value defaults to <c>false</c> and can be set by <see cref="M:Animancer.AnimancerGraph.SetKeepChildrenConnected(System.Boolean)"/>.
            <para></para>
            <strong>Example:</strong><code>
            [SerializeField]
            private AnimancerComponent _Animancer;
            
            public void Initialize()
            {
                _Animancer.Graph.SetKeepChildrenConnected(true);
            }
            </code></remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.SetKeepChildrenConnected(System.Boolean)">
            <summary>Sets <see cref="P:Animancer.AnimancerGraph.KeepChildrenConnected"/>.</summary>
            <remarks>This method exists because the <see cref="P:Animancer.AnimancerGraph.KeepChildrenConnected"/> override can't add a setter.</remarks>
        </member>
        <member name="P:Animancer.AnimancerGraph.SkipFirstFade">
            <summary>
            Normally the first animation on the Base Layer should not fade in because there is nothing fading out. But
            sometimes that is undesirable, such as if the <see cref="P:UnityEngine.Animator.runtimeAnimatorController"/> is assigned
            since Animancer can blend with that.
            </summary>
            <remarks>
            Setting this value to false ensures that the <see cref="T:UnityEngine.Animations.AnimationLayerMixerPlayable"/> has at least two
            inputs because it ignores the <see cref="P:Animancer.AnimancerNode.Weight"/> of the layer when there is only one.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.#ctor(UnityEngine.Playables.PlayableGraph,Animancer.TransitionLibraries.TransitionLibrary)">
            <summary>
            Creates an <see cref="T:Animancer.AnimancerGraph"/> in an existing
            <see cref="T:UnityEngine.Playables.PlayableGraph"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.#ctor(Animancer.TransitionLibraries.TransitionLibrary)">
            <summary>
            Creates an <see cref="T:Animancer.AnimancerGraph"/> in a new
            <see cref="T:UnityEngine.Playables.PlayableGraph"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.CreateGraph">
            <summary>
            Creates a new empty <see cref="T:UnityEngine.Playables.PlayableGraph"/>
            and consumes the name set by <see cref="M:Animancer.AnimancerGraph.SetNextGraphName(System.String)"/> if it was called.
            </summary>
            <remarks>
            The caller is responsible for calling <see cref="M:Animancer.AnimancerGraph.Destroy"/> on the returned object,
            except in Edit Mode where it will be called automatically.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.SetNextGraphName(System.String)">
            <summary>[Editor-Conditional]
            Sets the display name for the next instance to give its <see cref="T:UnityEngine.Playables.PlayableGraph"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.ToString">
            <summary>[Editor-Only] Returns "Component Name (Animancer)".</summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.Output">
            <summary>The <see cref="T:UnityEngine.Playables.PlayableOutput"/> connected to this <see cref="T:Animancer.AnimancerGraph"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.CreateOutput(Animancer.IAnimancerComponent)">
            <summary>
            Plays this graph on the <see cref="P:Animancer.IAnimancerComponent.Animator"/>
            and sets the <see cref="P:Animancer.AnimancerGraph.Component"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.CreateOutput(UnityEngine.Animator,Animancer.IAnimancerComponent)">
            <summary>Plays this playable on the specified `animator` and sets the <see cref="P:Animancer.AnimancerGraph.Component"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.InsertOutputPlayable(UnityEngine.Playables.Playable)">
            <summary>[Pro-Only]
            Inserts a `playable` after the root of the <see cref="P:Animancer.AnimancerGraph.PlayableGraph"/>
            so that it can modify the final output.
            </summary>
            <remarks>It can be removed using <see cref="M:Animancer.AnimancerUtilities.RemovePlayable(UnityEngine.Playables.Playable,System.Boolean)"/>.</remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.InsertOutputJob``1(``0)">
            <summary>[Pro-Only]
            Inserts an animation job after the root of the <see cref="P:Animancer.AnimancerGraph.PlayableGraph"/>
            so that it can modify the final output.
            </summary>
            <remarks>
            It can can be removed by passing the returned value into <see cref="M:Animancer.AnimancerUtilities.RemovePlayable(UnityEngine.Playables.Playable,System.Boolean)"/>.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.Animancer#ICopyable{Animancer#AnimancerGraph}#CopyFrom(Animancer.AnimancerGraph,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerGraph.CopyFrom(Animancer.AnimancerGraph,System.Boolean)">
            <summary>Copies all layers and states from `copyFrom` into this graph.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.CopyFrom(Animancer.AnimancerGraph,Animancer.CloneContext,System.Boolean)">
            <summary>Copies all layers and states from `copyFrom` into this graph.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.IsValidOrDispose">
            <summary>Is this <see cref="T:Animancer.AnimancerGraph"/> currently usable (not destroyed)?</summary>
            <remarks>Calls <see cref="M:Animancer.AnimancerGraph.DisposeAll"/> if the <see cref="P:Animancer.AnimancerGraph.PlayableGraph"/> was already destroyed.</remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.Destroy">
            <summary>Destroys the <see cref="P:Animancer.AnimancerGraph.PlayableGraph"/> and everything in it. This operation cannot be undone.</summary>
            <remarks>If the <see cref="P:Animancer.AnimancerGraph.PlayableGraph"/> is owned by another system, use <see cref="M:Animancer.AnimancerGraph.DestroyPlayables"/> instead.</remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.DestroyPlayables">
            <summary>
            Destroys this <see cref="T:Animancer.AnimancerGraph"/> and everything inside it (layers, states, etc.)
            without destroying the <see cref="P:Animancer.AnimancerGraph.PlayableGraph"/>.
            </summary>
            <remarks>
            This can be useful if Animancer was initialized inside a <see cref="T:UnityEngine.Playables.PlayableGraph"/> owned by another
            system such as Unity's Animation Rigging package. Otherwise, use <see cref="M:Animancer.AnimancerGraph.Destroy"/>.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.DestroyOutput">
            <summary>Destroys the <see cref="P:Animancer.AnimancerGraph.Output"/> if it exists and returns true if successful.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.Finalize">
            <summary>Calls <see cref="M:Animancer.AnimancerGraph.OnGraphDestroyed"/> in case <see cref="M:Animancer.AnimancerGraph.Destroy"/> wasn't called.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.OnGraphDestroyed">
            <summary>Calls <see cref="M:Animancer.AnimancerLayer.OnGraphDestroyed"/> on all layers.</summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.Disposables">
            <summary>A list of objects that need to be disposed when this <see cref="T:Animancer.AnimancerGraph"/> is destroyed.</summary>
            <remarks>This list is primarily used to dispose native arrays used by Animation Jobs.</remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.DisposeAll">
            <summary>Calls <see cref="M:System.IDisposable.Dispose"/> on all <see cref="P:Animancer.AnimancerGraph.Disposables"/> and discards them.</summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.ApplyAnimatorIK">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.AnimancerGraph.ApplyFootIK">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerGraph.GetKey(UnityEngine.AnimationClip)">
            <summary>Calls <see cref="M:Animancer.IAnimancerComponent.GetKey(UnityEngine.AnimationClip)"/> on the <see cref="P:Animancer.AnimancerGraph.Component"/>.</summary>
            <remarks>If the <see cref="P:Animancer.AnimancerGraph.Component"/> is null, this method returns the `clip` itself.</remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.Stop(Animancer.IHasKey)">
            <summary>
            Gets the state registered with the <see cref="P:Animancer.IHasKey.Key"/>,
            stops and rewinds it to the start, then returns it.
            </summary>
            <remarks>Note that playing something new will automatically stop the old animation.</remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.Stop(System.Object)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerNode.Stop"/> on the state registered with the `key`
            to stop it from playing and rewind it to the start.
            </summary>
            <remarks>Note that playing something new will automatically stop the old animation.</remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.Stop">
            <summary>
            Calls <see cref="M:Animancer.AnimancerNode.Stop"/> on all animations
            to stop them from playing and rewind them to the start.
            </summary>
            <remarks>Note that playing something new will automatically stop the old animation.</remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.IsPlaying(Animancer.IHasKey)">
            <summary>Is a state registered with the <see cref="P:Animancer.IHasKey.Key"/> and currently playing?</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.IsPlaying(System.Object)">
            <summary>Is a state registered with the `key` and currently playing?</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.IsPlaying">
            <summary>Is least one animation being played?</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.IsPlayingClip(UnityEngine.AnimationClip)">
            <summary>Is the `clip` currently being played by at least one state in the specified layer?</summary>
            <remarks>
            This method is inefficient because it searches through every state,
            unlike <see cref="M:Animancer.AnimancerGraph.IsPlaying(System.Object)"/> which only checks the state registered using the specified key.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.GetTotalWeight">
            <summary>Calculates the total <see cref="P:Animancer.AnimancerNode.Weight"/> of all states in all layers.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.GatherAnimationClips(System.Collections.Generic.ICollection{UnityEngine.AnimationClip})">
            <summary>[<see cref="T:Animancer.IAnimationClipCollection"/>] Gathers all the animations in all layers.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.System#Collections#IEnumerator#MoveNext">
            <summary>Are any animations playing?</summary>
            <remarks>This allows this object to be used as a custom yield instruction.</remarks>
        </member>
        <member name="P:Animancer.AnimancerGraph.System#Collections#IEnumerator#Current">
            <summary>Returns null.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.System#Collections#IEnumerator#Reset">
            <summary>Does nothing.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.Stop(Animancer.AnimancerState)">
            <summary>[Warning]
            You should not use an <see cref="T:Animancer.AnimancerState"/> as a key.
            Just call <see cref="M:Animancer.AnimancerNode.Stop"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.IsPlaying(Animancer.AnimancerState)">
            <summary>[Warning]
            You should not use an <see cref="T:Animancer.AnimancerState"/> as a key.
            Just check <see cref="P:Animancer.AnimancerState.IsPlaying"/>.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.IsGraphPlaying">
            <summary>Indicates whether the <see cref="T:UnityEngine.Playables.PlayableGraph"/> is currently playing.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.UnpauseGraph">
            <summary>
            Resumes playing the <see cref="T:UnityEngine.Playables.PlayableGraph"/> if <see cref="M:Animancer.AnimancerGraph.PauseGraph"/> was called previously.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.PauseGraph">
            <summary>
            Freezes the <see cref="T:UnityEngine.Playables.PlayableGraph"/> at its current state.
            <para></para>
            If you call this method, you are responsible for calling <see cref="M:Animancer.AnimancerGraph.UnpauseGraph"/> to resume playing.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.Evaluate">
            <summary>
            Evaluates all of the currently playing animations to apply their states to the animated objects.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.Evaluate(System.Single)">
            <summary>
            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.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.AppendDescription(System.Text.StringBuilder,System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerGraph.AppendInternalDetails(System.Text.StringBuilder,System.String,System.String)">
            <summary>Appends all registered <see cref="T:Animancer.IUpdatable"/>s and <see cref="T:System.IDisposable"/>s.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.AppendAll(System.Text.StringBuilder,System.String,System.String,System.Collections.ICollection,System.String)">
            <summary>Appends everything in the `collection`.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.AppendGraphDetails(System.Text.StringBuilder,System.String,System.String)">
            <summary>Appends the structure of the <see cref="P:Animancer.AnimancerGraph.PlayableGraph"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.AppendGraphDetails(System.Text.StringBuilder,UnityEngine.Playables.Playable,System.String,System.String)">
            <summary>Appends the structure of the <see cref="P:Animancer.AnimancerGraph.PlayableGraph"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.RequirePreUpdate(Animancer.IUpdatable)">
            <summary>[Pro-Only]
            Adds the `updatable` to the list that need to be updated before the playables if it wasn't there already.
            </summary>
            <remarks>
            The <see cref="P:UnityEngine.Animator.updateMode"/> determines the update rate.
            <para></para>
            This method is safe to call at any time, even during an update.
            <para></para>
            The execution order is non-deterministic. Specifically, the most recently added will be updated first and
            <see cref="M:Animancer.AnimancerGraph.CancelPreUpdate(Animancer.IUpdatable)"/> will change the order by swapping the last one into the place of the removed
            object.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.RequirePostUpdate(Animancer.IUpdatable)">
            <summary>[Pro-Only]
            Adds the `updatable` to the list that need to be updated after the playables if it wasn't there already.
            </summary>
            <remarks>
            The <see cref="P:UnityEngine.Animator.updateMode"/> determines the update rate.
            <para></para>
            This method is safe to call at any time, even during an update.
            <para></para>
            The execution order is non-deterministic.
            Specifically, the most recently added will be updated first and <see cref="M:Animancer.AnimancerGraph.CancelPostUpdate(Animancer.IUpdatable)"/>
            will change the order by swapping the last one into the place of the removed object.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.CancelPreUpdate(Animancer.IUpdatable)">
            <summary>Removes the `updatable` from the list of objects that need to be updated before the playables.</summary>
            <remarks>
            This method is safe to call at any time, even during an update.
            <para></para>
            The last element is swapped into the place of the one being removed so that the rest of them don't need to
            be moved down one place to fill the gap. This is more efficient, but means that the update order can change.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.CancelPostUpdate(Animancer.IUpdatable)">
            <summary>Removes the `updatable` from the list of objects that need to be updated after the playebles.</summary>
            <remarks>
            This method is safe to call at any time, even during an update.
            <para></para>
            The last element is swapped into the place of the one being removed so that the rest of them don't need to
            be moved down one place to fill the gap. This is more efficient, but means that the update order can change.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerGraph.Current">
            <summary>The graph currently being executed.</summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.DeltaTime">
            <summary>The current <see cref="P:UnityEngine.Playables.FrameData.deltaTime"/>.</summary>
            <remarks>After each update, this property will be left at its most recent value.</remarks>
        </member>
        <member name="P:Animancer.AnimancerGraph.FrameID">
            <summary>The current <see cref="P:UnityEngine.Playables.FrameData.frameId"/>.</summary>
            <remarks>
            After each update, this property will be left at its most recent value.
            <para></para>
            <see cref="P:Animancer.AnimancerState.Time"/> uses this value to determine whether it has accessed the playable's time
            since it was last updated in order to cache its value.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.UpdateAll(Animancer.IUpdatable.List,System.Single,System.UInt64)">
            <summary>[Internal] Calls <see cref="M:Animancer.IUpdatable.Update"/> on each of the updatables`.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.UpdateEvents">
            <summary>[Internal]
            Checks if any events should be invoked on any of the <see cref="P:Animancer.AnimancerGraph.Layers"/>.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerGraph.InactiveInitializationStackTrace">
            <summary>[Editor-Only] [Internal]
            A stack trace captured in <see cref="M:Animancer.AnimancerGraph.CreateOutput(UnityEngine.Animator,Animancer.IAnimancerComponent)"/>
            if the <see cref="P:UnityEngine.GameObject.activeInHierarchy"/> is false.
            </summary>
            <remarks>
            This is used to warn if the graph isn't destroyed
            because Unity won't call <c>OnDestroy</c> if the object is never activated.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerGraph.CaptureInactiveInitializationStackTrace(Animancer.IAnimancerComponent)">
            <summary>[Editor-Only] Captures the <see cref="P:Animancer.AnimancerGraph.InactiveInitializationStackTrace"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerGraph.ClearInactiveInitializationStackTrace(Animancer.AnimancerGraph)">
            <summary>[Editor-Only] [Internal] Discards the <see cref="P:Animancer.AnimancerGraph.InactiveInitializationStackTrace"/>.</summary>
        </member>
        <member name="T:Animancer.AnimancerLayerList">
            <summary>A list of <see cref="T:Animancer.AnimancerLayer"/>s with methods to control their mixing and masking.</summary>
            <remarks>
            The default implementation of this class is <see cref="T:Animancer.AnimancerLayerMixerList"/>.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/blending/layers">
            Layers</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerLayerList
        </member>
        <member name="F:Animancer.AnimancerLayerList.Graph">
            <summary>The <see cref="T:Animancer.AnimancerGraph"/> containing this list.</summary>
        </member>
        <member name="F:Animancer.AnimancerLayerList._Layers">
            <summary>The layers which each manage their own set of animations.</summary>
            <remarks>This field should never be null so it shouldn't need null-checking.</remarks>
        </member>
        <member name="F:Animancer.AnimancerLayerList._Count">
            <summary>The number of layers that have actually been created.</summary>
        </member>
        <member name="P:Animancer.AnimancerLayerList.Playable">
            <summary>The <see cref="T:UnityEngine.Playables.Playable"/> which blends the layers.</summary>
        </member>
        <member name="M:Animancer.AnimancerLayerList.#ctor(Animancer.AnimancerGraph)">
            <summary>Creates a new <see cref="T:Animancer.AnimancerLayerList"/>.</summary>
            <remarks>The <see cref="P:Animancer.AnimancerLayerList.Playable"/> must be assigned by the end of the derived constructor.</remarks>
        </member>
        <member name="P:Animancer.AnimancerLayerList.Count">
            <summary>[Pro-Only] The number of layers in this list.</summary>
            <exception cref="T:System.ArgumentOutOfRangeException">
            The value is set higher than the <see cref="P:Animancer.AnimancerLayerList.DefaultCapacity"/>. This is simply a safety measure,
            so if you do actually need more layers you can just increase the limit.
            </exception>
            <exception cref="T:System.IndexOutOfRangeException">The value is set to a negative number.</exception>
        </member>
        <member name="M:Animancer.AnimancerLayerList.SetMinCount(System.Int32)">
            <summary>[Pro-Only]
            If the <see cref="P:Animancer.AnimancerLayerList.Count"/> is below the specified `min`, this method increases it to that value.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerLayerList.DefaultCapacity">
            <summary>[Pro-Only]
            The maximum number of layers that can be created before an <see cref="T:System.ArgumentOutOfRangeException"/> will
            be thrown (default 4).
            <para></para>
            Lowering this value will not affect layers that have already been created.
            </summary>
            <remarks>
            <strong>Example:</strong>
            To set this value automatically when the application starts, place a method like this in any class:
            <para></para><code>
            [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
            private static void SetMaxLayerCount()
            {
                Animancer.AnimancerLayerList.DefaultCapacity = 8;
            }
            </code>
            Otherwise you can set the <see cref="P:Animancer.AnimancerLayerList.Capacity"/> of each individual list:
            <para></para><code>
            AnimancerComponent animancer;
            animancer.Layers.Capacity = 8;
            </code></remarks>
        </member>
        <member name="M:Animancer.AnimancerLayerList.SetMinDefaultCapacity(System.Int32)">
            <summary>[Pro-Only]
            If the <see cref="P:Animancer.AnimancerLayerList.DefaultCapacity"/> is below the specified `min`, this method increases it to that value.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerLayerList.Capacity">
            <summary>[Pro-Only]
            The maximum number of layers that can be created before an <see cref="T:System.ArgumentOutOfRangeException"/> will
            be thrown. The initial capacity is determined by <see cref="P:Animancer.AnimancerLayerList.DefaultCapacity"/>.
            </summary>
            
            <remarks>
            Lowering this value will destroy any layers beyond the specified value.
            <para></para>
            Changing this value will cause the allocation of a new array and garbage collection of the old one,
            so you should generally set the <see cref="P:Animancer.AnimancerLayerList.DefaultCapacity"/> before initializing this list.
            </remarks>
            
            <exception cref="T:System.ArgumentOutOfRangeException">The value is not greater than 0.</exception>
        </member>
        <member name="M:Animancer.AnimancerLayerList.Add">
            <summary>[Pro-Only] Creates and returns a new <see cref="T:Animancer.AnimancerLayer"/> at the end of this list.</summary>
            <remarks>If the <see cref="P:Animancer.AnimancerLayerList.Capacity"/> would be exceeded, it will be doubled.</remarks>
        </member>
        <member name="P:Animancer.AnimancerLayerList.Item(System.Int32)">
            <summary>Returns the layer at the specified index. If it didn't already exist, this method creates it.</summary>
            <remarks>To only get an existing layer without creating new ones, use <see cref="M:Animancer.AnimancerLayerList.GetLayer(System.Int32)"/> instead.</remarks>
        </member>
        <member name="M:Animancer.AnimancerLayerList.GetLayer(System.Int32)">
            <summary>Returns the layer at the specified index.</summary>
            <remarks>To create a new layer if the target doesn't exist, use <see cref="P:Animancer.AnimancerLayerList.Item(System.Int32)"/> instead.</remarks>
        </member>
        <member name="M:Animancer.AnimancerLayerList.GetEnumerator">
            <summary>Returns an enumerator that will iterate through all layers.</summary>
        </member>
        <member name="M:Animancer.AnimancerLayerList.System#Collections#Generic#IEnumerable{Animancer#AnimancerLayer}#GetEnumerator">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerLayerList.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerLayerList.GatherAnimationClips(System.Collections.Generic.ICollection{UnityEngine.AnimationClip})">
            <summary>[<see cref="T:Animancer.IAnimationClipCollection"/>] Gathers all the animations in all layers.</summary>
        </member>
        <member name="M:Animancer.AnimancerLayerList.IsAdditive(System.Int32)">
            <summary>[Pro-Only]
            Is the layer at the specified index is set to additive blending?
            Otherwise it will override lower layers.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayerList.SetAdditive(System.Int32,System.Boolean)">
            <summary>[Pro-Only]
            Sets the layer at the specified index to blend additively with earlier layers (if true)
            or to override them (if false). Newly created layers will override by default.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayerList.SetMask(System.Int32,UnityEngine.AvatarMask)">
            <summary>[Pro-Only]
            Sets an <see cref="T:UnityEngine.AvatarMask"/> to determine which bones the layer at the specified index will affect.
            </summary>
            <remarks>
            Don't assign the same mask repeatedly unless you have modified it.
            This property doesn't check if the mask is the same
            so repeatedly assigning the same thing will simply waste performance.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayerList.SetDebugName(System.Int32,System.String)">
            <summary>[Editor-Conditional] Sets the Inspector display name of the layer at the specified index.</summary>
        </member>
        <member name="P:Animancer.AnimancerLayerList.AverageVelocity">
            <summary>
            The average velocity of the root motion of all currently playing animations,
            taking their current <see cref="P:Animancer.AnimancerNode.Weight"/> into account.
            </summary>
        </member>
        <member name="T:Animancer.AnimancerLayerMixerList">
            <summary>An <see cref="T:Animancer.AnimancerLayerList"/> which uses an <see cref="T:UnityEngine.Animations.AnimationLayerMixerPlayable"/>.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/blending/layers">
            Layers</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerLayerMixerList
        </member>
        <member name="M:Animancer.AnimancerLayerMixerList.#ctor(Animancer.AnimancerGraph)">
            <summary>Creates a new <see cref="T:Animancer.AnimancerLayerMixerList"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerLayerMixerList.LayerMixer">
            <summary>The <see cref="T:UnityEngine.Animations.AnimationLayerMixerPlayable"/> which blends the layers.</summary>
        </member>
        <member name="M:Animancer.AnimancerLayerMixerList.IsAdditive(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerLayerMixerList.SetAdditive(System.Int32,System.Boolean)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerLayerMixerList.SetMask(System.Int32,UnityEngine.AvatarMask)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.AnimancerStateDictionary">
            <summary>A dictionary of <see cref="T:Animancer.AnimancerState"/>s mapped to their <see cref="P:Animancer.AnimancerState.Key"/>.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/playing/states">
            States</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerStateDictionary
        </member>
        <member name="F:Animancer.AnimancerStateDictionary.Graph">
            <summary>The <see cref="T:Animancer.AnimancerGraph"/> at the root of the graph.</summary>
        </member>
        <member name="F:Animancer.AnimancerStateDictionary.States">
            <summary><see cref="P:Animancer.AnimancerState.Key"/> mapped to <see cref="T:Animancer.AnimancerState"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.#ctor(Animancer.AnimancerGraph)">
            <summary>[Internal] Creates a new <see cref="T:Animancer.AnimancerStateDictionary"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerStateDictionary.Count">
            <summary>The number of states that have been registered with a <see cref="P:Animancer.AnimancerState.Key"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.AppendDescriptionOrOrphans(System.Text.StringBuilder,System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.Create(UnityEngine.AnimationClip)">
            <summary>Creates and returns a new <see cref="T:Animancer.ClipState"/> to play the `clip`.</summary>
            <remarks>
            To create a state on a specific layer, use <c>animancer.Layers[x].CreateState(clip)</c> instead.
            <para></para>
            <see cref="M:Animancer.AnimancerGraph.GetKey(UnityEngine.AnimationClip)"/> is used to determine the <see cref="P:Animancer.AnimancerState.Key"/>.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.Create(System.Object,UnityEngine.AnimationClip)">
            <summary>
            Creates and returns a new <see cref="T:Animancer.ClipState"/> to play the `clip` and registers it with the `key`.
            </summary>
            <remarks>
            To create a state on a specific layer, use <c>animancer.Layers[x].CreateState(key, clip)</c> instead.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.CreateIfNew(UnityEngine.AnimationClip,UnityEngine.AnimationClip)">
            <summary>Calls <see cref="M:Animancer.AnimancerStateDictionary.GetOrCreate(UnityEngine.AnimationClip,System.Boolean)"/> for each of the specified clips.</summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.CreateIfNew(UnityEngine.AnimationClip,UnityEngine.AnimationClip,UnityEngine.AnimationClip)">
            <summary>Calls <see cref="M:Animancer.AnimancerStateDictionary.GetOrCreate(UnityEngine.AnimationClip,System.Boolean)"/> for each of the specified clips.</summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.CreateIfNew(UnityEngine.AnimationClip,UnityEngine.AnimationClip,UnityEngine.AnimationClip,UnityEngine.AnimationClip)">
            <summary>Calls <see cref="M:Animancer.AnimancerStateDictionary.GetOrCreate(UnityEngine.AnimationClip,System.Boolean)"/> for each of the specified clips.</summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.CreateIfNew(UnityEngine.AnimationClip[])">
            <summary>Calls <see cref="M:Animancer.AnimancerStateDictionary.GetOrCreate(UnityEngine.AnimationClip,System.Boolean)"/> for each of the specified `clips`.</summary>
        </member>
        <member name="P:Animancer.AnimancerStateDictionary.Current">
            <summary>
            The <see cref="P:Animancer.AnimancerLayer.CurrentState"/> on layer 0.
            <para></para>
            Specifically, this is the state that was most recently started using any of the Play methods on that layer.
            States controlled individually via methods in the <see cref="T:Animancer.AnimancerState"/> itself will not register in
            this property.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerStateDictionary.Item(UnityEngine.AnimationClip)">
            <summary>Calls <see cref="M:Animancer.AnimancerGraph.GetKey(UnityEngine.AnimationClip)"/> then returns the state registered with that key.</summary>
            <exception cref="T:System.ArgumentNullException">The key is null.</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">No state is registered with the key.</exception>
        </member>
        <member name="P:Animancer.AnimancerStateDictionary.Item(Animancer.IHasKey)">
            <summary>Returns the state registered with the <see cref="P:Animancer.IHasKey.Key"/>.</summary>
            <exception cref="T:System.ArgumentNullException">The `key` is null.</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">No state is registered with the `key`.</exception>
        </member>
        <member name="P:Animancer.AnimancerStateDictionary.Item(System.Object)">
            <summary>Returns the state registered with the `key`.</summary>
            <exception cref="T:System.ArgumentNullException">The `key` is null.</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">No state is registered with the `key`.</exception>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.TryGet(UnityEngine.AnimationClip,Animancer.AnimancerState@)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerGraph.GetKey(UnityEngine.AnimationClip)"/> then passes the key to
            <see cref="M:Animancer.AnimancerStateDictionary.TryGet(System.Object,Animancer.AnimancerState@)"/> and returns the result.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.TryGet(Animancer.IHasKey,Animancer.AnimancerState@)">
            <summary>
            Passes the <see cref="P:Animancer.IHasKey.Key"/> into <see cref="M:Animancer.AnimancerStateDictionary.TryGet(System.Object,Animancer.AnimancerState@)"/>
            and returns the result.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.TryGet(System.Object,Animancer.AnimancerState@)">
            <summary>
            If a `state` is registered with the `key`, this method outputs it and returns true. Otherwise the
            `state` is set to null and this method returns false.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.GetOrCreate(UnityEngine.AnimationClip,System.Boolean)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerGraph.GetKey(UnityEngine.AnimationClip)"/> and returns the state registered with that key
            or creates one if it doesn't exist.
            </summary>
            <remarks>
            If the state already exists but has the wrong <see cref="P:Animancer.AnimancerState.Clip"/>, the `allowSetClip`
            parameter determines what will happen. False causes it to throw an <see cref="T:System.ArgumentException"/> while
            true allows it to change the <see cref="P:Animancer.AnimancerState.Clip"/>. Note that the change is somewhat costly to
            performance so use with caution.
            </remarks>
            <exception cref="T:System.ArgumentException"/>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.GetOrCreate(Animancer.ITransition)">
            <summary>
            Returns the state registered with the `transition`s <see cref="P:Animancer.IHasKey.Key"/> if there is one.
            Otherwise this method uses <see cref="M:Animancer.ITransition.CreateState"/> to create a new one
            and registers it with that key before returning it.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.GetOrCreate(System.Object,UnityEngine.AnimationClip,System.Boolean)">
            <summary>
            Returns the state which registered with the `key` or creates one if it doesn't exist.
            <para></para>
            If the state already exists but has the wrong <see cref="P:Animancer.AnimancerState.Clip"/>, the `allowSetClip`
            parameter determines what will happen. False causes it to throw an <see cref="T:System.ArgumentException"/>
            while true allows it to change the <see cref="P:Animancer.AnimancerState.Clip"/>.
            Note that the change is somewhat costly to performance so use with caution.
            </summary>
            <exception cref="T:System.ArgumentException"/>
            <remarks>See also: <see cref="M:Animancer.AnimancerLayer.GetOrCreateState(System.Object,UnityEngine.AnimationClip,System.Boolean)"/></remarks>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.GetClipMismatchError(System.Object,UnityEngine.AnimationClip,UnityEngine.AnimationClip)">
            <summary>Returns an error message explaining that a state already exists with the specified `key`.</summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.Register(Animancer.AnimancerState)">
            <summary>[Internal]
            Registers the `state` in this dictionary so the <see cref="P:Animancer.AnimancerState.Key"/> can be used to get it
            later on using any of the lookup methods such as <see cref="P:Animancer.AnimancerStateDictionary.Item(System.Object)"/> or
            <see cref="M:Animancer.AnimancerStateDictionary.TryGet(System.Object,Animancer.AnimancerState@)"/>.
            </summary>
            <remarks>Does nothing if the <see cref="P:Animancer.AnimancerState.Key"/> is <c>null</c>.</remarks>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.Unregister(Animancer.AnimancerState)">
            <summary>[Internal] Removes the `state` from this dictionary (the opposite of <see cref="M:Animancer.AnimancerStateDictionary.Register(Animancer.AnimancerState)"/>).</summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.GetEnumerator">
            <summary>Returns an enumerator that will iterate through all registered states.</summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.System#Collections#Generic#IEnumerable{Animancer#AnimancerState}#GetEnumerator">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.GatherAnimationClips(System.Collections.Generic.ICollection{UnityEngine.AnimationClip})">
            <summary>[<see cref="T:Animancer.IAnimationClipCollection"/>]
            Adds all the animations of states with a <see cref="P:Animancer.AnimancerState.Key"/> to the `clips`.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.Destroy(UnityEngine.AnimationClip)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerState.Destroy"/> on the state associated with the `clip` (if any).
            Returns true if the state existed.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.Destroy(Animancer.IHasKey)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerState.Destroy"/> on the state associated with the <see cref="P:Animancer.IHasKey.Key"/>
            (if any). Returns true if the state existed.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.Destroy(System.Object)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerState.Destroy"/> on the state associated with the `key` (if any).
            Returns true if the state existed.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.DestroyAll(System.Collections.Generic.IList{UnityEngine.AnimationClip})">
            <summary>Calls <see cref="M:Animancer.AnimancerStateDictionary.Destroy(UnityEngine.AnimationClip)"/> on each of the `clips`.</summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.DestroyAll(System.Collections.Generic.IEnumerable{UnityEngine.AnimationClip})">
            <summary>Calls <see cref="M:Animancer.AnimancerStateDictionary.Destroy(UnityEngine.AnimationClip)"/> on each of the `clips`.</summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.DestroyAll(UnityEngine.IAnimationClipSource)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerStateDictionary.Destroy(UnityEngine.AnimationClip)"/> on all states gathered by
            <see cref="M:UnityEngine.IAnimationClipSource.GetAnimationClips(System.Collections.Generic.List{UnityEngine.AnimationClip})"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.DestroyAll(Animancer.IAnimationClipCollection)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerStateDictionary.Destroy(UnityEngine.AnimationClip)"/> on all states gathered by
            <see cref="M:Animancer.IAnimationClipCollection.GatherAnimationClips(System.Collections.Generic.ICollection{UnityEngine.AnimationClip})"/>.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerStateDictionary.Item(Animancer.AnimancerState)">
            <summary>[Warning]
            You should not use an <see cref="T:Animancer.AnimancerState"/> as a key.
            The whole point of a key is to identify a state in the first place.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.TryGet(Animancer.AnimancerState,Animancer.AnimancerState@)">
            <summary>[Warning]
            You should not use an <see cref="T:Animancer.AnimancerState"/> as a key.
            The whole point of a key is to identify a state in the first place.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.GetOrCreate(Animancer.AnimancerState,UnityEngine.AnimationClip)">
            <summary>[Warning]
            You should not use an <see cref="T:Animancer.AnimancerState"/> as a key.
            The whole point of a key is to identify a state in the first place.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerStateDictionary.Destroy(Animancer.AnimancerState)">
            <summary>[Warning]
            You should not use an <see cref="T:Animancer.AnimancerState"/> as a key.
            Just call <see cref="M:Animancer.AnimancerState.Destroy"/>.
            </summary>
        </member>
        <member name="T:Animancer.AnimancerUtilities">
            <summary>Various extension methods and utilities.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerUtilities
            
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerUtilities
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerUtilities
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerUtilities
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerUtilities
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerUtilities
            
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerUtilities
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerUtilities
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerUtilities
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerUtilities
        </member>
        <member name="F:Animancer.AnimancerUtilities.IsAnimancerPro">
            <summary>This is Animancer Lite.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.ToStringOrNull(System.Object)">
            <summary>
            If `obj` exists, this method returns <see cref="M:System.Object.ToString"/>.
            Or if it is <c>null</c>, this method returns <c>"Null"</c>.
            Or if it is an <see cref="T:UnityEngine.Object"/> that has been destroyed, this method returns <c>"Null (ObjectType)"</c>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.IsValid(Animancer.AnimancerNode)">
            <summary>[Animancer Extension]
            Is the `node` is not null and its <see cref="P:Animancer.AnimancerNodeBase.Playable"/> valid?
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.IsValid(Animancer.ITransitionDetailed)">
            <summary>[Animancer Extension]
            Is the `transition` not null and <see cref="P:Animancer.ITransitionDetailed.IsValid"/>?
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.CreateStateAndApply(Animancer.ITransition,Animancer.AnimancerGraph)">
            <summary>[Animancer Extension] Calls <see cref="M:Animancer.ITransition.CreateState"/> and <see cref="M:Animancer.ITransition.Apply(Animancer.AnimancerState)"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GetRootKey(System.Object)">
            <summary>
            If the `key` is an <see cref="T:Animancer.AnimancerState"/>,
            this method gets its <see cref="P:Animancer.AnimancerState.Key"/>
            and repeats that check until it finds another kind of key, which it returns.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GetLastKey(Animancer.AnimancerStateDictionary,System.Object)">
            <summary>
            If a state is registered with the `key`, this method gets it and repeats that check then returns the last
            state found.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Connect``2(UnityEngine.Playables.PlayableGraph,``0,``1,System.Int32,System.Single)">
            <summary>
            Calls <see cref="M:UnityEngine.Playables.PlayableGraph.Connect``2(``0,System.Int32,``1,System.Int32)"/> using output 0 from the `child` and
            <see cref="M:UnityEngine.Playables.PlayableExtensions.SetInputWeight``1(``0,System.Int32,System.Single)"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.ApplyChildWeight(UnityEngine.Playables.Playable,Animancer.AnimancerNode)">
            <summary>Applies the `child`'s current <see cref="P:Animancer.AnimancerNode.Weight"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.SetChildWeight(UnityEngine.Playables.Playable,Animancer.AnimancerState,System.Single)">
            <summary>
            Sets and applies the `child`'s <see cref="P:Animancer.AnimancerNode.Weight"/>
            and <see cref="P:Animancer.AnimancerState.IsActive"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.RemovePlayable(UnityEngine.Playables.Playable,System.Boolean)">
            <summary>[Pro-Only] Reconnects the input of the specified `playable` to its output.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.FindOutput(UnityEngine.Playables.PlayableGraph,UnityEngine.Playables.Playable)">
            <summary>Returns the output connected to the `sourcePlayable` (if any).</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.HasEvent(Animancer.IAnimationClipCollection,System.String)">
            <summary>
            Checks if any <see cref="T:UnityEngine.AnimationClip"/> in the `source` has an animation event with the specified
            `functionName`.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.HasEvent(UnityEngine.AnimationClip,System.String)">
            <summary>Checks if the `clip` has an animation event with the specified `functionName`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.CalculateThresholdsFromAverageVelocityXZ(Animancer.MixerState{UnityEngine.Vector2})">
            <summary>[Animancer Extension] [Pro-Only]
            Calculates all thresholds in the `mixer` using the <see cref="P:Animancer.AnimancerState.AverageVelocity"/> of each
            state on the X and Z axes.
            <para></para>
            Note that this method requires the <c>Root Transform Position (XZ) -> Bake Into Pose</c> toggle to be
            disabled in the Import Settings of each <see cref="T:UnityEngine.AnimationClip"/> in the mixer.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.CreateNativeReference``1">
            <summary>
            Creates a <see cref="T:Unity.Collections.NativeArray`1"/> containing a single element so that it can be used like a reference
            in Unity's C# Job system which does not allow regular reference types.
            </summary>
            <remarks>Note that you must call <see cref="M:Unity.Collections.NativeArray`1.Dispose"/> when you're done with the array.</remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.ConvertToTransformStreamHandles(System.Collections.Generic.IList{UnityEngine.Transform},UnityEngine.Animator)">
            <summary>
            Creates a <see cref="T:Unity.Collections.NativeArray`1"/> of <see cref="T:UnityEngine.Animations.TransformStreamHandle"/>s for each of the `transforms`.
            </summary>
            <remarks>Note that you must call <see cref="M:Unity.Collections.NativeArray`1.Dispose"/> when you're done with the array.</remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GetUnsupportedMessage``1(``0)">
            <summary>Returns a string stating that the `value` is unsupported.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.CreateUnsupportedArgumentException``1(``0)">
            <summary>Returns an exception stating that the `value` is unsupported.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.TryGet``1(System.Collections.Generic.IList{``0},System.Int32,``0@)">
            <summary>
            If the `index` is within the `list`,
            this method outputs the `item` at that `index` and returns true.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.TryGetObject``1(System.Collections.Generic.IList{``0},System.Int32,``0@)">
            <summary>
            If the `index` is within the `list` and that `item` is not null,
            this method outputs it and returns true.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.TryGetTransform(UnityEngine.Object,UnityEngine.Transform@)">
            <summary>
            If the `obj` is a <see cref="T:UnityEngine.Component"/> or <see cref="T:UnityEngine.GameObject"/>,
            this method outputs its `transform` and returns true.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.CopyExactArray``1(``0[],``0[]@)">
            <summary>Ensures that the length and contents of `copyTo` match `copyFrom`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Swap``1(``0[],System.Int32,System.Int32)">
            <summary>[Animancer Extension] Swaps <c>array[a]</c> with <c>array[b]</c>.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.ContentsAreEqual``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IList{``0})">
            <summary>Are both lists the same size with the same items in the same order?</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.IsNullOrEmpty``1(``0[])">
            <summary>[Animancer Extension]
            Is the `array` <c>null</c> or its <see cref="P:System.Array.Length"/> <c>0</c>?
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.SetLength``1(``0[]@,System.Int32)">
            <summary>
            If the `array` is <c>null</c> or its <see cref="P:System.Array.Length"/> isn't equal to the specified `length`, this
            method creates a new array with that `length` and returns <c>true</c>. Otherwise, it returns <c>false</c>
            and the array us unchanged.
            </summary>
            <remarks>
            Unlike <see cref="M:System.Array.Resize``1(``0[]@,System.Int32)"/>, this method doesn't copy over the contents of the old
            `array` into the new one.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.InsertAt``1(``0[]@,System.Int32,``0)">
            <summary>Resizes the `array` to be 1 larger and inserts the `item` at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.RemoveAt``1(``0[]@,System.Int32)">
            <summary>Removes the item at the specified `index` and resizes the `array` to be 1 smaller.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.NullIsEmpty``1(``0[])">
            <summary>Returns the `array`, or <see cref="M:System.Array.Empty``1"/> if it was <c>null</c>.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.DeepToString(System.Collections.IEnumerable,System.String,System.Func{System.Object,System.Object})">
            <summary>Returns a string containing the value of each element in `collection`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.DeepToString(System.Collections.IEnumerable,System.Func{System.Object,System.Object})">
            <summary>Returns a string containing the value of each element in `collection` (each on a new line).</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.DeepToString(System.Collections.IEnumerator,System.String,System.Func{System.Object,System.Object})">
            <summary>Returns a string containing the value of each element in `enumerator`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.DeepToString(System.Collections.IEnumerator,System.Func{System.Object,System.Object})">
            <summary>Returns a string containing the value of each element in `enumerator` (each on a new line).</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.AppendDeepToString(System.Text.StringBuilder,System.Collections.IEnumerator,System.String,System.Func{System.Object,System.Object})">
            <summary>Each element returned by `enumerator` is appended to `text`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Get``2(System.Collections.Generic.Dictionary{``0,``1},``0)">
            <summary>Returns the value registered in the `dictionary` using the `key`.</summary>
            <remarks>Returns <c>default</c>(<typeparamref name="TValue"/>) if nothing was registered.</remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Set``2(System.Collections.Generic.Dictionary{``0,``1},``0,``1)">
            <summary>Registers the `value` in the `dictionary` using the `key`, replacing any previous value.</summary>
            <remarks>
            This is identical to setting <c>dictionary[key] = value;</c>
            except the syntax matches <c>dictionary.Add(key, value);</c>.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.RemoveDestroyedObjects``2(System.Collections.Generic.Dictionary{``0,``1})">
            <summary>Removes any items from the `dictionary` that use destroyed objects as their key.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.InitializeCleanDictionary``2(System.Collections.Generic.Dictionary{``0,``1}@)">
            <summary>
            Creates a new dictionary and returns true if it was null or calls <see cref="M:Animancer.AnimancerUtilities.RemoveDestroyedObjects``2(System.Collections.Generic.Dictionary{``0,``1})"/> and
            returns false if it wasn't.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.CopyParameterValue(UnityEngine.Animator,UnityEngine.Animator,UnityEngine.AnimatorControllerParameter)">
            <summary>Copies the value of the `parameter` from `copyFrom` to `copyTo`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.CopyParameterValue(UnityEngine.Animations.AnimatorControllerPlayable,UnityEngine.Animations.AnimatorControllerPlayable,UnityEngine.AnimatorControllerParameter)">
            <summary>Copies the value of the `parameter` from `copyFrom` to `copyTo`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GetParameterValue(UnityEngine.Animator,UnityEngine.AnimatorControllerParameter)">
            <summary>Gets the value of the `parameter` in the `animator`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GetParameterValue(UnityEngine.Animations.AnimatorControllerPlayable,UnityEngine.AnimatorControllerParameter)">
            <summary>Gets the value of the `parameter` in the `playable`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.SetParameterValue(UnityEngine.Animator,UnityEngine.AnimatorControllerParameter,System.Object)">
            <summary>Sets the `value` of the `parameter` in the `animator`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.SetParameterValue(UnityEngine.Animations.AnimatorControllerPlayable,UnityEngine.AnimatorControllerParameter,System.Object)">
            <summary>Sets the `value` of the `parameter` in the `playable`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Wrap01(System.Single)">
            <summary>Loops the `value` so that <c>0 &lt;= value &lt; 1</c>.</summary>
            <remarks>This is more efficient than using <see cref="M:Animancer.AnimancerUtilities.Wrap(System.Single,System.Single)"/> with a <c>length</c> of 1.</remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Wrap(System.Single,System.Single)">
            <summary>Loops the `value` so that <c>0 &lt;= value &lt; length</c>.</summary>
            <remarks>Unike <see cref="M:UnityEngine.Mathf.Repeat(System.Single,System.Single)"/>, this method will never return the `length`.</remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Round(System.Single)">
            <summary>
            Rounds the `value` to the nearest integer using <see cref="F:System.MidpointRounding.AwayFromZero"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Round(System.Single,System.Single)">
            <summary>
            Rounds the `value` to be a multiple of the `multiple` using <see cref="F:System.MidpointRounding.AwayFromZero"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.InverseLerpUnclamped(System.Single,System.Single,System.Single)">
            <summary>The opposite of <see cref="M:UnityEngine.Mathf.LerpUnclamped(System.Single,System.Single,System.Single)"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.IsEqualOrBothNaN(System.Single,System.Single)">
            <summary>Are the given values equal or both <see cref="F:System.Single.NaN"/> (which wouldn't normally be equal)?</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.IsFinite(System.Single)">
            <summary>[Animancer Extension] Is the `value` not NaN or Infinity?</summary>
            <remarks>Newer versions of the .NET framework apparently have a <c>float.IsFinite</c> method.</remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.IsFinite(System.Double)">
            <summary>[Animancer Extension] Is the `value` not NaN or Infinity?</summary>
            <remarks>Newer versions of the .NET framework apparently have a <c>double.IsFinite</c> method.</remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.IsFinite(UnityEngine.Vector2)">
            <summary>[Animancer Extension] Are all components of the `value` not NaN or Infinity?</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Hash(System.Int32,System.Int32,System.Int32)">
            <summary>Returns a hash value from the given parameters.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Hash(System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>Returns a hash value from the given parameters.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Hash(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>Returns a hash value from the given parameters.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.AddHash(System.Int32@,System.Int32)">
            <summary>Includes `add` in the `hash`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.SafeGetHashCode``1(``0)">
            <summary>Uses <see cref="P:System.Collections.Generic.EqualityComparer`1.Default"/> to get a hash code.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.IsNullOrDestroyed(System.Object)">
            <summary>Is the `obj` <c>null</c> or a destroyed <see cref="T:UnityEngine.Object"/>?</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.AddAnimancerComponent``1(UnityEngine.Animator)">
            <summary>[Animancer Extension]
            Adds the specified type of <see cref="T:Animancer.IAnimancerComponent"/>, links it to the `animator`, and returns it.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GetOrAddAnimancerComponent``1(UnityEngine.Animator)">
            <summary>[Animancer Extension]
            Returns the <see cref="T:Animancer.IAnimancerComponent"/> on the same <see cref="T:UnityEngine.GameObject"/> as the `animator` if
            there is one. Otherwise this method adds a new one and returns it.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GetComponentInParentOrChildren``1(UnityEngine.GameObject)">
            <summary>
            Returns the first <typeparamref name="T"/> component on the `gameObject` or its parents or children (in
            that order).
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GetComponentInParentOrChildren``1(UnityEngine.GameObject,``0@)">
            <summary>
            If the `component` is <c>null</c>, this method tries to find one on the `gameObject` or its parents or
            children (in that order).
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.InitializeSingleton``1(``0@)">
            <summary>Creates a new <see cref="T:UnityEngine.GameObject"/> and `singleton` instance if it was null.</summary>
            <remarks>Calls <see cref="M:UnityEngine.Object.DontDestroyOnLoad(UnityEngine.Object)"/> on the instance.</remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Assert(System.Boolean,System.Object)">
            <summary>[Assert-Conditional]
            Throws an <see cref="T:UnityEngine.Assertions.AssertionException"/> if the `condition` is false.
            </summary>
            <remarks>
            This method is similar to <see cref="M:UnityEngine.Debug.Assert(System.Boolean,System.Object)"/>, but it throws an exception instead of
            just logging the `message`.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.SetDirty(UnityEngine.Object)">
            <summary>[Editor-Conditional] Indicates that the `target` needs to be re-serialized.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.EditModeSampleAnimation(UnityEngine.AnimationClip,UnityEngine.Component,System.Single)">
            <summary>[Editor-Conditional]
            Applies the effects of the animation `clip` to the <see cref="P:UnityEngine.Component.gameObject"/>.
            </summary>
            <remarks>This method is safe to call during <see cref="T:UnityEngine.MonoBehaviour"/><c>.OnValidate</c>.</remarks>
            <param name="clip">The animation to apply. If <c>null</c>, this method does nothing.</param>
            <param name="component">
            The animation will be applied to an <see cref="T:UnityEngine.Animator"/> or <see cref="T:UnityEngine.Animation"/> component on the same
            object as this or on any of its parents or children. If <c>null</c>, this method does nothing.
            </param>
            <param name="time">Determines which part of the animation to apply (in seconds).</param>
            <seealso cref="M:Animancer.AnimancerUtilities.EditModePlay(UnityEngine.AnimationClip,UnityEngine.Component)"/>
        </member>
        <member name="M:Animancer.AnimancerUtilities.EditModePlay(UnityEngine.AnimationClip,UnityEngine.Component)">
            <summary>[Editor-Conditional] Plays the specified `clip` if called in Edit Mode.</summary>
            <remarks>This method is safe to call during <see cref="T:UnityEngine.MonoBehaviour"/><c>.OnValidate</c>.</remarks>
            <param name="clip">The animation to apply. If <c>null</c>, this method does nothing.</param>
            <param name="component">
            The animation will be played on an <see cref="T:Animancer.IAnimancerComponent"/> on the same object as this or on any
            of its parents or children. If <c>null</c>, this method does nothing.
            </param>
            <seealso cref="M:Animancer.AnimancerUtilities.EditModeSampleAnimation(UnityEngine.AnimationClip,UnityEngine.Component,System.Single)"/>
        </member>
        <member name="M:Animancer.AnimancerUtilities.AssertDerivedPoolType``1(System.Type)">
            <summary>[Editor-Only]
            Asserts that the `type` isn't a base <see cref="T:Animancer.ObjectPool`1"/> with a more derived type available.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerUtilities.BaseToDerivedPoolType">
            <summary>
            An automatically gathered dictionary which maps base <see cref="T:Animancer.ObjectPool`1"/>
            types to any other types which inherit from them.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.ReleaseToString(System.Text.StringBuilder)">
            <summary>[Animancer Extension]
            Calls <see cref="M:System.Text.StringBuilder.ToString"/> and <see cref="M:Animancer.StringBuilderPool.Release(System.Text.StringBuilder)"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Gather(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},UnityEngine.AnimationClip)">
            <summary>[Animancer Extension]
            Adds the `clip` to the `clips` if it wasn't there already.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Gather(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},System.Collections.Generic.IList{UnityEngine.AnimationClip})">
            <summary>[Animancer Extension]
            Calls <see cref="M:Animancer.AnimancerUtilities.Gather(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},UnityEngine.AnimationClip)"/> for each of the `newClips`.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.Gather(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},System.Collections.Generic.IEnumerable{UnityEngine.AnimationClip})">
            <summary>[Animancer Extension]
            Calls <see cref="M:Animancer.AnimancerUtilities.Gather(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},UnityEngine.AnimationClip)"/> for each of the `newClips`.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GatherFromAsset(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},UnityEngine.Playables.PlayableAsset)">
            <summary>[Animancer Extension]
            Calls <see cref="M:Animancer.AnimancerUtilities.Gather(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},UnityEngine.AnimationClip)"/> for each clip in the `asset`.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GatherFromTracks(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},System.Collections.IEnumerable)">
            <summary>Gathers all the animations in the `tracks`.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GatherFromSource(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},UnityEngine.IAnimationClipSource)">
            <summary>[Animancer Extension]
            Calls <see cref="M:Animancer.AnimancerUtilities.Gather(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},UnityEngine.AnimationClip)"/> for each clip gathered by
            <see cref="M:UnityEngine.IAnimationClipSource.GetAnimationClips(System.Collections.Generic.List{UnityEngine.AnimationClip})"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GatherFromSource(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},System.Collections.IEnumerable)">
            <summary>[Animancer Extension]
            Calls <see cref="M:Animancer.AnimancerUtilities.GatherFromSource(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},System.Object)"/> for each item in the `source`.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GatherFromSource(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},System.Object)">
            <summary>[Animancer Extension]
            Calls <see cref="M:Animancer.AnimancerUtilities.Gather(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},UnityEngine.AnimationClip)"/> for each clip in the `source`,
            supporting both <see cref="T:UnityEngine.IAnimationClipSource"/> and <see cref="T:Animancer.IAnimationClipCollection"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.TryGetFrameRate(System.Object,System.Single@)">
            <summary>
            Attempts to get the <see cref="P:UnityEngine.AnimationClip.frameRate"/> from the `clipSource` and returns true if
            successful. If it has multiple animations with different rates, this method returns false.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.FindRoot(UnityEngine.GameObject)">
             <summary>[Editor-Only]
             Takes a `gameObject` and returns the root <see cref="T:UnityEngine.Transform"/> of the character it is part of.
             </summary>
             
             <remarks>
             This method first searches all parents for a component implementing <see cref="T:Animancer.ICharacterRoot"/>.
             If it finds one, it returns the <see cref="P:Animancer.ICharacterRoot.transform"/>.
             <para></para>
             Otherwise, if the object is part of a prefab then it returns the root of that prefab instance.
             <para></para>
             Otherwise, it counts the number of Animators in the children of the `gameObject` then does
             the same for each parent. If it finds a parent with a different number of child Animators, it
             assumes that object is the parent of multiple characters and returns the previous parent as the root.
             </remarks>
            
             <example>
             <h2>Simple Hierarchy</h2>
             <code>
             - Character - Rigidbody, etc.
                 - Model - Animator, AnimancerComponent
                 - States - Various components which reference the AnimationClips they will play
             </code>
             Passing the <c>Model</c> into this method will return the <c>Character</c> because it has the same
             number of Animator components in its children.
            
             <h2>Shared Hierarchy</h2>
             <code>
             - Characters - Empty object used to group all characters
                 - Character - Rigidbody, etc.
                     - Model - Animator, AnimancerComponent
                     - States - Various components which reference the AnimationClips they will play
                 - Another Character
                     - Model
                     - States
             </code>
             <list type="bullet">
             <item><c>Model</c> has one Animator and no more in its children.</item>
             <item>And <c>Character</c> has one Animator in its children (the same one).</item>
             <item>But <c>Characters</c> has two Animators in its children (one on each character).</item>
             </list>
             So it picks the <c>Character</c> as the root.
            
             <h2>Complex Hierarchy</h2>
             <code>
             - Character - Rigidbody, etc.
                 - Model - Animator, AnimancerComponent
                 - States - Various components which reference the AnimationClips they will play
                 - Another Model - Animator (maybe the character is holding a gun which has a reload animation)
             </code>
             In this case, the automatic system would see that the <c>Character</c> already has more child
             <see cref="T:UnityEngine.Animator"/>s than the selected <c>Model</c> so it would only return the <c>Model</c> itself.
             This can be fixed by making any of the scripts on the <c>Character</c> implement <see cref="T:Animancer.ICharacterRoot"/>
             to tell the system which object you want it to use as the root.
             </example>
        </member>
        <member name="M:Animancer.AnimancerUtilities.FindRoot(UnityEngine.Object)">
            <summary>[Editor-Only]
            Calls <see cref="M:Animancer.AnimancerUtilities.FindRoot(UnityEngine.GameObject)"/> if the specified `obj` is a
            <see cref="T:UnityEngine.GameObject"/> or <see cref="T:UnityEngine.Component"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.TryGetGameObject(UnityEngine.Object,UnityEngine.GameObject@)">
            <summary>[Editor-Only]
            Outputs the <see cref="T:UnityEngine.GameObject"/> assignated with the `obj` and returns true if it exists.
            </summary>
            <remarks>
            If the `obj` is a <see cref="T:UnityEngine.GameObject"/> it is used as the result.
            <para></para>
            Or if the `obj` is a <see cref="T:UnityEngine.Component"/> then its <see cref="P:UnityEngine.Component.gameObject"/>
            is used as the result.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.GetDescription(Animancer.IHasDescription,System.String)">
            <summary>
            Calls <see cref="M:Animancer.IHasDescription.AppendDescription(System.Text.StringBuilder,System.String)"/> with a pooled <see cref="T:System.Text.StringBuilder"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.AppendDescription``1(System.Text.StringBuilder,``0,System.String,System.Boolean)">
            <summary>
            Appends "Null" if `maybeHasDescription` is null. Otherwise calls
            <see cref="M:Animancer.IHasDescription.AppendDescription(System.Text.StringBuilder,System.String)"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.AppendDescription(System.Text.StringBuilder,Animancer.IHasDescription,System.String,System.Boolean)">
            <summary>
            Appends "Null" if `hasDescription` is null. Otherwise calls
            <see cref="M:Animancer.IHasDescription.AppendDescription(System.Text.StringBuilder,System.String)"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.AppendField``1(System.Text.StringBuilder,System.String,System.String,``0,System.String,System.Boolean)">
            <summary>Appends <c>{prefix}{name}: {value}</c>.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.StartsWithNewLine(System.String)">
            <summary>Does the `text` start with a new line character?</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.TryGetAverageAngularSpeed(System.Object,System.Single@)">
            <summary>Outputs the <see cref="P:UnityEngine.Motion.averageAngularSpeed"/> or <see cref="P:Animancer.IMotion.AverageAngularSpeed"/>.</summary>
            <remarks>Returns false if the `motion` is null or an unsupported type.</remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.TryGetAverageVelocity(System.Object,UnityEngine.Vector3@)">
            <summary>Outputs the <see cref="P:UnityEngine.Motion.averageSpeed"/> or <see cref="P:Animancer.IMotion.AverageVelocity"/>.</summary>
            <remarks>Returns false if the `motion` is null or an unsupported type.</remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.IsValid(Animancer.ITransition)">
            <summary>Returns the <see cref="P:Animancer.ITransitionDetailed.IsValid"/> with support for <see cref="T:Animancer.IWrapper"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.TryGetFadeDuration(Animancer.ITransition)">
            <summary>
            Returns the <see cref="P:Animancer.ITransition.FadeDuration"/>
            or <see cref="F:System.Single.NaN"/> if it throws an exception.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.TryGetIsLooping(System.Object,System.Boolean@)">
            <summary>Outputs the <see cref="P:UnityEngine.Motion.isLooping"/> or <see cref="P:Animancer.ITransitionDetailed.IsLooping"/>.</summary>
            <remarks>Returns false if the `motionOrTransition` is null or an unsupported type.</remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.TryGetLength(System.Object,System.Single@)">
            <summary>Outputs the <see cref="P:UnityEngine.AnimationClip.length"/> or <see cref="P:Animancer.ITransitionDetailed.MaximumDuration"/>.</summary>
            <remarks>Returns false if the `motionOrTransition` is null or an unsupported type.</remarks>
        </member>
        <member name="M:Animancer.AnimancerUtilities.TryCalculateDuration(System.Object,System.Single@)">
            <summary>
            Tries to calculate the amount of time (in seconds)
            from the <see cref="P:Animancer.ITransitionDetailed.NormalizedStartTime"/>
            too the <see cref="P:Animancer.AnimancerEvent.Sequence.NormalizedEndTime"/>,
            including the <see cref="P:Animancer.ITransitionDetailed.Speed"/>
            </summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.IsInList(Animancer.IUpdatable)">
            <summary>Is the `updatable` currently in a list?</summary>
        </member>
        <member name="M:Animancer.AnimancerUtilities.TryGetWrappedObject``1(System.Object,``0@,System.Boolean)">
            <summary>
            Returns the last <see cref="P:Animancer.IWrapper.WrappedObject"/>
            which is a <typeparamref name="T"/>, including the `wrapper` itself.
            </summary>
        </member>
        <member name="T:Animancer.AnimancerEvent">
            <summary>
            A <see cref="F:Animancer.AnimancerEvent.callback"/> delegate paired with a <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> to determine when to invoke it.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">
            Animancer Events</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerEvent
            
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerEvent
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerEvent
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerEvent
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerEvent
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerEvent
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerEvent
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerEvent
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerEvent
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerEvent
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerEvent
        </member>
        <member name="F:Animancer.AnimancerEvent.normalizedTime">
            <summary>The <see cref="P:Animancer.AnimancerState.NormalizedTime"/> at which to invoke the <see cref="F:Animancer.AnimancerEvent.callback"/>.</summary>
        </member>
        <member name="F:Animancer.AnimancerEvent.callback">
            <summary>The delegate to invoke when the <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> passes.</summary>
        </member>
        <member name="F:Animancer.AnimancerEvent.AlmostOne">
            <summary>The largest possible float value less than 1.</summary>
            <remarks>
            This value is useful for placing events at the end of a looping animation since they do not allow the
            <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> to be greater than or equal to 1.
            </remarks>
        </member>
        <member name="F:Animancer.AnimancerEvent.EndEventName">
            <summary>The event name used for <see cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>s.</summary>
            <remarks>
            This is a <see cref="M:Animancer.StringReference.Unique(System.String)"/> so that even if the same name happens
            to be used elsewhere, it would be treated as a different name.
            The reason for this is explained in <see cref="M:Animancer.NamedEventDictionary.AssertNotEndEvent(Animancer.StringReference)"/>.
            </remarks>
        </member>
        <member name="F:Animancer.AnimancerEvent.DummyCallback">
            <summary>Does nothing.</summary>
            <remarks>This delegate can be used for events which would otherwise have a <c>null</c> <see cref="F:Animancer.AnimancerEvent.callback"/>.</remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Dummy">
            <summary>Does nothing.</summary>
            <remarks>Used by <see cref="F:Animancer.AnimancerEvent.DummyCallback"/>.</remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.IsNullOrDummy(System.Action)">
            <summary>Is the `callback` <c>null</c> or the <see cref="F:Animancer.AnimancerEvent.DummyCallback"/>?</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.#ctor(System.Single,System.Action)">
            <summary>Creates a new <see cref="T:Animancer.AnimancerEvent"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.ToString">
            <summary>Returns a string describing the details of this event.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.AppendDetails(System.Text.StringBuilder)">
            <summary>Appends the details of this event to the `text`.</summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Current">
            <summary>The details of the event currently being triggered.</summary>
            <remarks>Cleared after the event is invoked.</remarks>
        </member>
        <member name="F:Animancer.AnimancerEvent.InvokeBoundCallback">
            <summary>
            A cached delegate which calls <see cref="M:Animancer.AnimancerEvent.Invocation.InvokeBoundCallback"/>
            on the <see cref="P:Animancer.AnimancerEvent.Current"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.InvokeCurrentBoundCallback">
            <summary>
            Calls <see cref="M:Animancer.AnimancerEvent.Invocation.InvokeBoundCallback"/> on the <see cref="P:Animancer.AnimancerEvent.Current"/>.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.CurrentParameter">
            <summary>The custom parameter of the event currently being triggered.</summary>
            <remarks>Cleared after the event is invoked.</remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.GetCurrentParameter``1">
            <summary>Calls <see cref="M:Animancer.ConvertableUtilities.ConvertOrDefault``1(System.Object)"/> on the <see cref="P:Animancer.AnimancerEvent.CurrentParameter"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Parametize``1(System.Action{``0})">
            <summary>Returns a new delegate which invokes the `callback` using <see cref="M:Animancer.AnimancerEvent.GetCurrentParameter``1"/>.</summary>
            <remarks>
            If <typeparamref name="T"/> is <see cref="T:System.String"/>,
            consider using <see cref="M:Animancer.AnimancerEvent.Parametize(System.Action{System.String})"/> instead of this.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The `callback` is <c>null</c>.</exception>
        </member>
        <member name="M:Animancer.AnimancerEvent.Parametize(System.Action{System.String})">
            <summary>Returns a new delegate which invokes the `callback` using the <see cref="P:Animancer.AnimancerEvent.CurrentParameter"/>.</summary>
            <exception cref="T:System.ArgumentNullException">The `callback` is <c>null</c>.</exception>
        </member>
        <member name="M:Animancer.AnimancerEvent.AssertContainsParameter``1(System.Action)">
            <summary>[Assert-Only]
            Logs an error if the `callback` doesn't contain a <see cref="M:Animancer.AnimancerEvent.Parameter`1.Invoke"/>
            so that adding to it with <see cref="M:Animancer.AnimancerEvent.Parametize``1(System.Action{``0})"/> can use that parameter.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.ContainsParameterInvoke``1(System.Action)">
            <summary>Does the `callback` contain a <see cref="M:Animancer.AnimancerEvent.Parameter`1.Invoke"/>?</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.IsParameterInvoke``1(System.Delegate)">
            <summary>Is the `callback` a call to <see cref="M:Animancer.AnimancerEvent.Parameter`1.Invoke"/>?</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.DelayInvoke(Animancer.StringReference,Animancer.AnimancerState)">
            <summary>
            Adds this event to the <see cref="T:Animancer.AnimancerEvent.Invoker"/>
            which will call <see cref="M:Animancer.AnimancerEvent.Invocation.Invoke"/> later in the current frame.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.AssertEventPlayMismatch(Animancer.AnimancerGraph)">
            <summary>[Assert-Conditional]
            This method should be called when an animation is played.
            It asserts that either no event is currently being triggered
            or that the event is being triggered inside `playing`.
            Otherwise, it logs <see cref="F:Animancer.OptionalWarning.EventPlayMismatch"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.GetFadeOutDuration">
            <summary>
            Returns either the <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/>
            or the <see cref="P:Animancer.AnimancerState.RemainingDuration"/>
            of the <see cref="P:Animancer.AnimancerEvent.Current"/> state (whichever is higher).
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.GetFadeOutDuration(System.Single)">
            <summary>
            Returns either the `minDuration` or the <see cref="P:Animancer.AnimancerState.RemainingDuration"/>
            of the <see cref="P:Animancer.AnimancerEvent.Current"/> state (whichever is higher).
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.GetFadeOutDuration(Animancer.AnimancerState,System.Single)">
            <summary>
            Returns either the `minDuration` or the <see cref="P:Animancer.AnimancerState.RemainingDuration"/>
            of the `state` (whichever is higher).
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.op_Equality(Animancer.AnimancerEvent,Animancer.AnimancerEvent)">
            <summary>Are the <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> and <see cref="F:Animancer.AnimancerEvent.callback"/> equal?</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.op_Inequality(Animancer.AnimancerEvent,Animancer.AnimancerEvent)">
            <summary>Are the <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> and <see cref="F:Animancer.AnimancerEvent.callback"/> not equal?</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Equals(Animancer.AnimancerEvent)">
            <summary>[<see cref="T:System.IEquatable`1"/>]
            Are the <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> and <see cref="F:Animancer.AnimancerEvent.callback"/> of this event equal to `other`?
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerEvent.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.AnimancerEvent.Dispatcher">
            <summary>
            A system which triggers events in an <see cref="T:Animancer.AnimancerEvent.Sequence"/>
            based on a target <see cref="F:Animancer.AnimancerEvent.Dispatcher.State"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer/Dispatcher
        </member>
        <member name="F:Animancer.AnimancerEvent.Dispatcher.State">
            <summary>The target state.</summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Dispatcher.Events">
            <summary>
            <see cref="P:Animancer.AnimancerState.OwnedEvents"/> and
            <see cref="P:Animancer.AnimancerState.SharedEvents"/>.
            </summary>
            <remarks>Should never be null.</remarks>
        </member>
        <member name="P:Animancer.AnimancerEvent.Dispatcher.HasOwnEvents">
            <summary><see cref="P:Animancer.AnimancerState.HasOwnedEvents"/></summary>
        </member>
        <member name="F:Animancer.AnimancerEvent.Dispatcher.RecalculateEventIndex">
            <summary>
            A special value for the <see cref="F:Animancer.AnimancerEvent.Dispatcher._NextEventIndex"/>
            which indicates that it needs to be recalculated.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Dispatcher.#ctor(Animancer.AnimancerState)">
            <summary>Creates a new <see cref="T:Animancer.AnimancerEvent.Dispatcher"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Dispatcher.SetEvents(Animancer.AnimancerEvent.Sequence,System.Boolean)">
            <summary>
            Setters for <see cref="P:Animancer.AnimancerState.OwnedEvents"/>
            and <see cref="P:Animancer.AnimancerState.SharedEvents"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Dispatcher.DismissEventOwnership">
            <summary>Sets <see cref="P:Animancer.AnimancerEvent.Dispatcher.HasOwnEvents"/> to <c>false</c>.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Dispatcher.InitializeEvents(Animancer.AnimancerEvent.Sequence@)">
            <summary><see cref="M:Animancer.AnimancerState.Events(System.Object,Animancer.AnimancerEvent.Sequence@)"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Dispatcher.OnSetTime">
            <summary>[Internal]
            Notifies this dispatcher that the target's <see cref="T:UnityEngine.Time"/> has changed.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Dispatcher.UpdateEvents(System.Boolean)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Dispatcher.UpdateZeroLength">
            <summary>If the state has zero length, trigger its events every frame.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Dispatcher.CheckGeneralEvents(System.Single,System.Boolean)">
            <summary>General events are triggered on the frame when their time passes.</summary>
            <remarks>Looping animations trigger their events every loop.</remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Dispatcher.GetLoopDelta(System.Single,System.Single,System.Single)">
            <summary>
            Calculates the number of times an event at `eventTime` should be invoked when the
            <see cref="P:Animancer.AnimancerState.NormalizedTime"/> goes from `previousTime` to `nextTime` on a looping animation.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Dispatcher.MaximumFullLoopCount">
            <summary>
            The maximum number of times a looping animation can trigger all of its events in a single frame.
            Default 3, Minimum 1.
            </summary>
            <remarks>
            This limit should only ever be reached when a state has a very short length and high speed.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Dispatcher.CheckEndEvent(System.Single)">
            <summary>End events are triggered every frame after their time passes.</summary>
            <remarks>
            This ensures that assigning the event after the time has passed
            will still trigger it rather than leaving it playing indefinitely.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Dispatcher.ToString">
            <summary>Returns "<see cref="T:Animancer.AnimancerEvent.Dispatcher"/> (Target State)".</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Dispatcher.AppendDescription(System.Text.StringBuilder,System.String)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.AnimancerEvent.Invocation">
            <summary>An <see cref="T:Animancer.AnimancerEvent"/> and other associated details used to invoke it.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/Invocation
        </member>
        <member name="F:Animancer.AnimancerEvent.Invocation.Event">
            <summary>The <see cref="T:Animancer.AnimancerEvent"/>.</summary>
        </member>
        <member name="F:Animancer.AnimancerEvent.Invocation.Name">
            <summary>The name of the <see cref="F:Animancer.AnimancerEvent.Invocation.Event"/>.</summary>
        </member>
        <member name="F:Animancer.AnimancerEvent.Invocation.State">
            <summary>The <see cref="T:Animancer.AnimancerState"/> triggering the <see cref="F:Animancer.AnimancerEvent.Invocation.Event"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Invocation.#ctor(Animancer.AnimancerEvent,Animancer.StringReference,Animancer.AnimancerState)">
            <summary>Creates a new <see cref="T:Animancer.AnimancerEvent.Invocation"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Invocation.Invoke">
            <summary>
            Sets the <see cref="P:Animancer.AnimancerEvent.Current"/>, invokes the <see cref="F:Animancer.AnimancerEvent.callback"/>,
            then reverts the <see cref="P:Animancer.AnimancerEvent.Current"/>.
            </summary>
            <remarks>This method catches and logs any exception thrown by the <see cref="F:Animancer.AnimancerEvent.callback"/>.</remarks>
            <exception cref="T:System.NullReferenceException">The <see cref="F:Animancer.AnimancerEvent.callback"/> is null.</exception>
        </member>
        <member name="M:Animancer.AnimancerEvent.Invocation.GetBoundCallback">
            <summary>
            Returns the callback registered in the <see cref="P:Animancer.AnimancerGraph.Events"/>
            with the <see cref="F:Animancer.AnimancerEvent.Invocation.Name"/> (or null if there isn't one).
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Invocation.ToString">
            <summary>Returns a string describing the contents of this invocation.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Invocation.InvokeBoundCallback">
            <summary>
            Invokes the callback bound to the <see cref="F:Animancer.AnimancerEvent.Invocation.Name"/> in the <see cref="P:Animancer.AnimancerGraph.Events"/>.
            </summary>
            <remarks>
            Logs <see cref="F:Animancer.OptionalWarning.UselessEvent"/> if no callback is bound.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Invocation.AssertEndEventInvoked(Animancer.AnimancerLayer,System.Int32)">
            <summary>[Assert-Only]
            Call after invoking an end event to assert <see cref="F:Animancer.OptionalWarning.EndEventInterrupt"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Invocation.ShouldLogEndEventInterrupt(Animancer.AnimancerLayer,System.Int32)">
            <summary>[Assert-Only] Should <see cref="F:Animancer.OptionalWarning.EndEventInterrupt"/> be logged?</summary>
        </member>
        <member name="F:Animancer.AnimancerEvent.InvocationQueue">
            <summary>Events ready to be invoked by the next <see cref="M:Animancer.AnimancerEvent.Invoker.InvokeAllAndClear"/>.</summary>
            <remarks>
            This field should be inside the Invoker class.
            But that can potentially cause a TypeLoadException if Invoker initializes before AnimancerEvent.
            Having it out in AnimancerEvent avoids that possibility.
            </remarks>
        </member>
        <member name="T:Animancer.AnimancerEvent.Invoker">
            <summary>Gathers delegates in a static list to be invoked at a later time by any child class.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/Invoker
        </member>
        <member name="M:Animancer.AnimancerEvent.Invoker.Initialize(System.Boolean)">
            <summary>Ensures that an appropriate <see cref="T:Animancer.AnimancerEvent.Invoker"/> has been created.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Invoker.Initialize(UnityEngine.AnimatorUpdateMode)">
            <summary>Ensures that an appropriate <see cref="T:Animancer.AnimancerEvent.Invoker"/> has been created.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Invoker.Add(Animancer.AnimancerEvent.Invocation)">
            <summary>[Internal] Adds an event to the queue to be invoked by the next update.</summary>
        </member>
        <member name="F:Animancer.AnimancerEvent.Invoker._CurrentInvocation">
            <summary>
            In case <see cref="M:Animancer.AnimancerEvent.Invoker.InvokeAllAndClear"/> gets called recursively,
            we need to avoid invoking the same event multiple times
            without the performance cost of immediately removing them each from the queue.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Invoker.InvokeAllAndClear">
            <summary>Invokes all queued events and clears the queue.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Invoker.EnumerateInvocationQueue">
            <summary>Returns an enumerator for all invocations currently in the queue.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Invoker.Awake">
            <summary>[Assert-Only] Registers this instance.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Invoker.OnDestroy">
            <summary>[Assert-Only] Un-registers this instance.</summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Invoker.HasEnabledInstance">
            <summary>[Assert-Only] Is there any <see cref="P:UnityEngine.Behaviour.enabled"/> instance?</summary>
        </member>
        <member name="T:Animancer.AnimancerEvent.InvokerDynamic">
            <summary>Executes <see cref="M:Animancer.AnimancerEvent.Invoker.InvokeAllAndClear"/> after animations in the Dynamic Update cycle.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/InvokerDynamic
        </member>
        <member name="M:Animancer.AnimancerEvent.InvokerDynamic.Initialize">
            <summary>Creates the singleton instance.</summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.InvokerDynamic.Enabled">
            <summary>Should this system execute events?</summary>
            <remarks>If disabled, this system will not be re-enabled automatically.</remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.InvokerDynamic.LateUpdate">
            <summary>After animation update with dynamic timestep.</summary>
        </member>
        <member name="T:Animancer.AnimancerEvent.InvokerFixed">
            <summary>Executes <see cref="M:Animancer.AnimancerEvent.Invoker.InvokeAllAndClear"/> after animations in the Fixed Update cycle.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/InvokerFixed
        </member>
        <member name="M:Animancer.AnimancerEvent.InvokerFixed.Initialize">
            <summary>Creates the singleton instance.</summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.InvokerFixed.Enabled">
            <summary>Should this system execute events?</summary>
            <remarks>If disabled, this system will not be re-enabled automatically.</remarks>
        </member>
        <member name="F:Animancer.AnimancerEvent.InvokerFixed.WaitForFixedUpdate">
            <summary>A cached instance of <see cref="T:UnityEngine.WaitForFixedUpdate"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.InvokerFixed.OnEnable">
            <summary>Starts the <see cref="M:Animancer.AnimancerEvent.InvokerFixed.LateFixedUpdate"/> coroutine.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.InvokerFixed.LateFixedUpdate">
            <summary>After animation update with fixed timestep.</summary>
        </member>
        <member name="T:Animancer.AnimancerEvent.Sequence">
            <summary>
            A variable-size list of <see cref="T:Animancer.AnimancerEvent"/>s which keeps itself sorted
            according to their <see cref="F:Animancer.AnimancerEvent.normalizedTime"/>.
            </summary>
            <remarks>
            <em>Animancer Lite doesn't allow events (except for <see cref="P:Animancer.AnimancerEvent.Sequence.OnEnd"/>) in runtime builds.</em>
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">
            Animancer Events</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/Sequence
            
            https://kybernetik.com.au/animancer/api/Animancer/Sequence
        </member>
        <member name="F:Animancer.AnimancerEvent.Sequence._Events">
            <summary>All of the events in this sequence, excluding the <see cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>.</summary>
            <remarks>This field should never be null. It should use <see cref="M:System.Array.Empty``1"/> instead.</remarks>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.Count">
            <summary>[Pro-Only] The number of events in this sequence, excluding the <see cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.IsEmpty">
            <summary>Does this sequence have no events in it, including the <see cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>?</summary>
        </member>
        <member name="F:Animancer.AnimancerEvent.Sequence.DefaultCapacity">
            <summary>The initial <see cref="P:Animancer.AnimancerEvent.Sequence.Capacity"/> which will be used if another value is not specified.</summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.Capacity">
            <summary>[Pro-Only] The size of the internal array used to hold events.</summary>
            <remarks>
            When set, the array is re-allocated to the given size.
            <para></para>
            If not specified in the constructor, this value starts at 0
            and increases to the <see cref="F:Animancer.AnimancerEvent.Sequence.DefaultCapacity"/> when the first event is added.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.Version">
            <summary>
            The number of times the contents of this sequence have been modified.
            This applies to general events, but not the <see cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.EndEvent">
             <summary>
             A <see cref="F:Animancer.AnimancerEvent.callback"/> which will be triggered <strong>every frame</strong>
             after the <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> has passed as long as the animation is playing.
             </summary>
            
             <remarks>
             Interrupting the animation before it ends doesn't trigger this event.
             <para></para>
             By default, the <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> will be <see cref="F:System.Single.NaN"/>
             so that it chooses the correct value based on the current play direction:
             playing forwards ends at 1 and playing backwards ends at 0.
             <para></para>
             <strong>Documentation:</strong>
             <see href="https://kybernetik.com.au/animancer/docs/manual/events/end">
             End Events</see>
             </remarks>
             
             <seealso cref="P:Animancer.AnimancerEvent.Sequence.OnEnd"/>
             <seealso cref="P:Animancer.AnimancerEvent.Sequence.NormalizedEndTime"/>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.OnEnd">
             <summary>
             A callback which will be triggered <strong>every frame</strong> after the
             <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> has passed as long as the animation is playing.
             </summary>
            
             <remarks>
             Interrupting the animation before it ends doesn't trigger this event.
             <para></para>
             By default, the <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> will be <see cref="F:System.Single.NaN"/>
             so that it chooses the correct value based on the current play direction:
             playing forwards ends at 1 and playing backwards ends at 0.
             <para></para>
             <strong>Documentation:</strong>
             <see href="https://kybernetik.com.au/animancer/docs/manual/events/end">
             End Events</see>
             </remarks>
             
             <seealso cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>
             <seealso cref="P:Animancer.AnimancerEvent.Sequence.NormalizedEndTime"/>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.NormalizedEndTime">
            <summary>Shorthand for <c>EndEvent.normalizedTime</c>.</summary>
            <remarks>
            This value is <see cref="F:System.Single.NaN"/> by default so that the actual time
            can be determined based on the <see cref="P:Animancer.AnimancerNodeBase.EffectiveSpeed"/>:
            positive speed ends at 1 and negative speed ends at 0.
            <para></para>
            Use <see cref="P:Animancer.AnimancerState.NormalizedEndTime"/> to access that value.
            </remarks>
            <seealso cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>
            <seealso cref="P:Animancer.AnimancerEvent.Sequence.OnEnd"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.GetRealNormalizedEndTime(System.Single)">
            <summary>
            Returns the <see cref="P:Animancer.AnimancerEvent.Sequence.NormalizedEndTime"/> but converts <see cref="F:System.Single.NaN"/>
            to its corresponding default value: positive speed ends at 1 and negative speed ends at 0.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.GetDefaultNormalizedStartTime(System.Single)">
            <summary>
            The default <see cref="P:Animancer.AnimancerState.NormalizedTime"/> for an animation to start
            at when playing forwards is 0 (the start of the animation)
            and when playing backwards is 1 (the end of the animation).
            <para></para>
            `speed` 0 or <see cref="F:System.Single.NaN"/> will also return 0.
            </summary>
            <remarks>
            This method has nothing to do with events, so it is only here because of
            <see cref="M:Animancer.AnimancerEvent.Sequence.GetDefaultNormalizedEndTime(System.Single)"/>.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.GetDefaultNormalizedEndTime(System.Single)">
            <summary>
            The default <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> for an <see cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>
            when playing forwards is 1 (the end of the animation)
            and when playing backwards is 0 (the start of the animation).
            <para></para>
            `speed` 0 or <see cref="F:System.Single.NaN"/> will also return 1.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.Names">
            <summary>The names of the events, excluding the <see cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>.</summary>
            <remarks>This array is empty by default and can never be <c>null</c>.</remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.GetName(System.Int32)">
            <summary>
            Returns the name of the event at the specified `index`
            or <c>null</c> if it's outside of the <see cref="P:Animancer.AnimancerEvent.Sequence.Names"/> array.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.SetName(System.Int32,Animancer.StringReference)">
            <summary>Sets the name of the event at the specified `index`.</summary>
            <remarks>
            If the <see cref="P:Animancer.AnimancerEvent.Sequence.Names"/> did not previously include that `index`
            it will be resized with a size equal to the <see cref="P:Animancer.AnimancerEvent.Sequence.Count"/>.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.IndexOf(Animancer.StringReference,System.Int32)">
            <summary>
            Returns the index of the first event with the specified `name`
            or <c>-1</c> if there is no such event.
            </summary>
            <seealso cref="P:Animancer.AnimancerEvent.Sequence.Names"/>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.GetName(System.Int32)"/>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.SetName(System.Int32,Animancer.StringReference)"/>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(Animancer.StringReference,System.Int32)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(Animancer.StringReference,System.Int32)">
            <summary>Returns the index of the first event with the specified `name`.</summary>
            <exception cref="T:System.ArgumentException">There is no such event.</exception>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOf(Animancer.StringReference,System.Int32)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.#ctor">
            <summary>
            Creates a new <see cref="T:Animancer.AnimancerEvent.Sequence"/> which starts at 0 <see cref="P:Animancer.AnimancerEvent.Sequence.Capacity"/>.
            <para></para>
            Adding anything to the sequence will set the <see cref="P:Animancer.AnimancerEvent.Sequence.Capacity"/> = <see cref="F:Animancer.AnimancerEvent.Sequence.DefaultCapacity"/>
            and then double it whenever the <see cref="P:Animancer.AnimancerEvent.Sequence.Count"/> would exceed the <see cref="P:Animancer.AnimancerEvent.Sequence.Capacity"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.#ctor(System.Int32)">
            <summary>[Pro-Only]
            Creates a new <see cref="T:Animancer.AnimancerEvent.Sequence"/> which starts with the specified
            <see cref="P:Animancer.AnimancerEvent.Sequence.Capacity"/>. It will be initially empty, but will have room for the
            given number of elements before any reallocations are required.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.#ctor(Animancer.AnimancerEvent.Sequence)">
            <summary>Creates a new <see cref="T:Animancer.AnimancerEvent.Sequence"/> and copies the contents of `copyFrom` into it.</summary>
            <remarks>To copy into an existing sequence, use <see cref="M:Animancer.AnimancerEvent.Sequence.CopyFrom(Animancer.AnimancerEvent.Sequence)"/> instead.</remarks>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.Item(System.Int32)">
            <summary>[Pro-Only] Returns the event at the specified `index`.</summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.Item(Animancer.StringReference)">
            <summary>[Pro-Only] Returns the event with the specified `name`.</summary>
            <exception cref="T:System.ArgumentException">There is no event with the specified `name`.</exception>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.DeepToString(System.Boolean)">
            <summary>Returns a string containing the details of all events in this sequence.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.GetEnumerator">
            <summary>[Pro-Only]
            Returns a <see cref="T:Animancer.FastEnumerator`1"/> for the events in this sequence,
            excluding the <see cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.IndexOf(Animancer.AnimancerEvent)">
            <summary>[Pro-Only] Returns the index of the `animancerEvent` or <c>-1</c> if there is no such event.</summary>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(System.Int32,Animancer.AnimancerEvent)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(Animancer.AnimancerEvent)">
            <summary>[Pro-Only] Returns the index of the `animancerEvent`.</summary>
            <exception cref="T:System.ArgumentException">There is no such event.</exception>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOf(Animancer.AnimancerEvent)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.IndexOf(System.Int32,Animancer.AnimancerEvent)">
            <summary>[Pro-Only] Returns the index of the `animancerEvent` or <c>-1</c> if there is no such event.</summary>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(System.Int32,Animancer.AnimancerEvent)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(System.Int32,Animancer.AnimancerEvent)">
            <summary>[Pro-Only] Returns the index of the `animancerEvent`.</summary>
            <exception cref="T:System.ArgumentException">There is no such event.</exception>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOf(System.Int32,Animancer.AnimancerEvent)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Add(Animancer.AnimancerEvent)">
            <summary>[Pro-Only]
            Adds the given event to this sequence. The <see cref="P:Animancer.AnimancerEvent.Sequence.Count"/> is increased by one
            and if required, the <see cref="P:Animancer.AnimancerEvent.Sequence.Capacity"/> is doubled to fit the new event.
            </summary>
            <remarks>
            This methods returns the index at which the event is added, which is determined by
            its <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> to keep the sequence sorted in ascending order.
            If there are already any events with the same <see cref="F:Animancer.AnimancerEvent.normalizedTime"/>,
            the new event is added immediately after them.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            Use <see cref="F:Animancer.AnimancerEvent.DummyCallback"/> or <see cref="F:Animancer.AnimancerEvent.InvokeBoundCallback"/> instead of <c>null</c>.
            </exception>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Add(System.Single,System.Action)">
            <summary>[Pro-Only]
            Adds the given event to this sequence. The <see cref="P:Animancer.AnimancerEvent.Sequence.Count"/> is increased by one
            and if required, the <see cref="P:Animancer.AnimancerEvent.Sequence.Capacity"/> is doubled to fit the new event.
            </summary>
            <remarks>
            This methods returns the index at which the event is added, which is determined by
            its <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> to keep the sequence sorted in ascending order.
            If there are already any events with the same <see cref="F:Animancer.AnimancerEvent.normalizedTime"/>,
            the new event is added immediately after them.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            Use <see cref="F:Animancer.AnimancerEvent.DummyCallback"/> or <see cref="F:Animancer.AnimancerEvent.InvokeBoundCallback"/> instead of <c>null</c>.
            </exception>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Add(System.Int32,Animancer.AnimancerEvent)">
            <summary>[Pro-Only]
            Adds the given event to this sequence. The <see cref="P:Animancer.AnimancerEvent.Sequence.Count"/> is increased by one
            and if required, the <see cref="P:Animancer.AnimancerEvent.Sequence.Capacity"/> is doubled to fit the new event.
            </summary>
            <remarks>
            This methods returns the index at which the event is added, which is determined by
            its <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> to keep the sequence sorted in ascending order.
            If there are already any events with the same <see cref="F:Animancer.AnimancerEvent.normalizedTime"/>,
            the new event is added immediately after them.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Add(System.Int32,System.Single,System.Action)">
            <summary>[Pro-Only]
            Adds the given event to this sequence. The <see cref="P:Animancer.AnimancerEvent.Sequence.Count"/> is increased by one
            and if required, the <see cref="P:Animancer.AnimancerEvent.Sequence.Capacity"/> is doubled to fit the new event.
            </summary>
            <remarks>
            This methods returns the index at which the event is added, which is determined by
            its <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> to keep the sequence sorted in ascending order.
            If there are already any events with the same <see cref="F:Animancer.AnimancerEvent.normalizedTime"/>,
            the new event is added immediately after them.
            </remarks>
            <exception cref="T:System.ArgumentNullException">
            Use <see cref="F:Animancer.AnimancerEvent.DummyCallback"/> or <see cref="F:Animancer.AnimancerEvent.InvokeBoundCallback"/> instead of <c>null</c>.
            </exception>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.AddRange(System.Collections.Generic.IEnumerable{Animancer.AnimancerEvent})">
            <summary>[Pro-Only]
            Adds every event in the `enumerable` to this sequence using <see cref="M:Animancer.AnimancerEvent.Sequence.Add(Animancer.AnimancerEvent)"/>.
            </summary>
            <exception cref="T:System.ArgumentNullException">
            Use <see cref="F:Animancer.AnimancerEvent.DummyCallback"/> or <see cref="F:Animancer.AnimancerEvent.InvokeBoundCallback"/> instead of <c>null</c>.
            </exception>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.AddCallback(System.Int32,System.Action)">
            <summary>[Pro-Only] Adds the specified `callback` to the event at the specified `index`.</summary>
            <exception cref="T:System.ArgumentNullException">
            Use <see cref="F:Animancer.AnimancerEvent.DummyCallback"/> or <see cref="F:Animancer.AnimancerEvent.InvokeBoundCallback"/> instead of <c>null</c>.
            </exception>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.AddCallback(Animancer.StringReference,System.Action)">
            <summary>[Pro-Only] Adds the specified `callback` to the event with the specified `name`.</summary>
            <exception cref="T:System.ArgumentException">There is no event with the specified `name`.</exception>
            <exception cref="T:System.ArgumentNullException">
            Use <see cref="F:Animancer.AnimancerEvent.DummyCallback"/> or <see cref="F:Animancer.AnimancerEvent.InvokeBoundCallback"/> instead of <c>null</c>.
            </exception>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.AddCallbacks(Animancer.StringReference,System.Action)"/>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(Animancer.StringReference,System.Int32)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.AddCallbacks(Animancer.StringReference,System.Action)">
            <summary>[Pro-Only]
            Adds the specified `callback` to every event with the specified `name`
            and returns the number of events that were found.
            </summary>
            <exception cref="T:System.ArgumentNullException">
            Use <see cref="F:Animancer.AnimancerEvent.DummyCallback"/> or <see cref="F:Animancer.AnimancerEvent.InvokeBoundCallback"/> instead of <c>null</c>.
            </exception>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.AddCallback(Animancer.StringReference,System.Action)"/>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOf(Animancer.StringReference,System.Int32)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.AddCallback``1(System.Int32,System.Action{``0})">
            <summary>[Pro-Only]
            Adds the specified `callback` to the event at the specified `index`.
            <see cref="M:Animancer.AnimancerEvent.GetCurrentParameter``1"/> will be used to get the callback's parameter.
            </summary>
            <exception cref="T:System.ArgumentNullException">The `callback` is <c>null</c>.</exception>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.AddCallback``1(Animancer.StringReference,System.Action{``0})"/>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.AddCallbacks``1(Animancer.StringReference,System.Action{``0})"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.AddCallback``1(Animancer.StringReference,System.Action{``0})">
            <summary>[Pro-Only]
            Adds the specified `callback` to the event with the specified `name`.
            <see cref="M:Animancer.AnimancerEvent.GetCurrentParameter``1"/> will be used to get the callback's parameter.
            </summary>
            <exception cref="T:System.ArgumentException">There is no event with the specified `name`.</exception>
            <exception cref="T:System.ArgumentNullException">The `callback` is <c>null</c>.</exception>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.AddCallbacks``1(Animancer.StringReference,System.Action{``0})"/>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(Animancer.StringReference,System.Int32)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.AddCallbacks``1(Animancer.StringReference,System.Action{``0})">
            <summary>[Pro-Only]
            Adds the specified `callback` to every event with the specified `name`
            and returns the number of events that were found.
            <see cref="M:Animancer.AnimancerEvent.GetCurrentParameter``1"/> will be used to get the callback's parameter.
            </summary>
            <exception cref="T:System.ArgumentNullException">The `callback` is <c>null</c>.</exception>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.AddCallback``1(Animancer.StringReference,System.Action{``0})"/>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOf(Animancer.StringReference,System.Int32)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.RemoveCallback(System.Int32,System.Action)">
            <summary>[Pro-Only] Removes the specified `callback` from the event at the specified `index`.</summary>
            <remarks>
            If the <see cref="F:Animancer.AnimancerEvent.callback"/> would become <c>null</c>,
            it is instead set to the <see cref="F:Animancer.AnimancerEvent.DummyCallback"/> since they are not allowed to be <c>null</c>.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.RemoveCallback(Animancer.StringReference,System.Action)">
            <summary>[Pro-Only] Removes the specified `callback` from the event with the specified `name`.</summary>
            <remarks>
            If the <see cref="F:Animancer.AnimancerEvent.callback"/> would become <c>null</c>,
            it is instead set to the <see cref="F:Animancer.AnimancerEvent.DummyCallback"/> since they are not allowed to be <c>null</c>.
            </remarks>
            <exception cref="T:System.ArgumentException">There is no event with the specified `name`.</exception>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.RemoveCallbacks(Animancer.StringReference,System.Action)"/>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(Animancer.StringReference,System.Int32)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.RemoveCallbacks(Animancer.StringReference,System.Action)">
            <summary>[Pro-Only]
            Removes the specified `callback` from every event with the specified `name`
            and returns the number of events that were found.
            </summary>
            <remarks>
            If a <see cref="F:Animancer.AnimancerEvent.callback"/> would become <c>null</c>,
            it is instead set to the <see cref="F:Animancer.AnimancerEvent.DummyCallback"/> since they are not allowed to be <c>null</c>.
            </remarks>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.RemoveCallback(Animancer.StringReference,System.Action)"/>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(Animancer.StringReference,System.Int32)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.SetCallback(System.Int32,System.Action)">
            <summary>[Pro-Only] Replaces the <see cref="F:Animancer.AnimancerEvent.callback"/> of the event at the specified `index`.</summary>
            <exception cref="T:System.ArgumentNullException">
            Use <see cref="F:Animancer.AnimancerEvent.DummyCallback"/> or <see cref="F:Animancer.AnimancerEvent.InvokeBoundCallback"/> instead of <c>null</c>.
            </exception>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.SetCallback(Animancer.StringReference,System.Action)">
            <summary>[Pro-Only] Replaces the <see cref="F:Animancer.AnimancerEvent.callback"/> of the event with the specified `name`.</summary>
            <exception cref="T:System.ArgumentException">There is no event with the specified `name`.</exception>
            <exception cref="T:System.ArgumentNullException">
            Use <see cref="F:Animancer.AnimancerEvent.DummyCallback"/> or <see cref="F:Animancer.AnimancerEvent.InvokeBoundCallback"/> instead of <c>null</c>.
            </exception>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.SetCallbacks(Animancer.StringReference,System.Action)"/>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(Animancer.StringReference,System.Int32)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.SetCallbacks(Animancer.StringReference,System.Action)">
            <summary>[Pro-Only]
            Replaces the <see cref="F:Animancer.AnimancerEvent.callback"/> of every event with the specified `name`
            and returns the number of events that were found.
            </summary>
            <exception cref="T:System.ArgumentNullException">
            Use <see cref="F:Animancer.AnimancerEvent.DummyCallback"/> or <see cref="F:Animancer.AnimancerEvent.InvokeBoundCallback"/> instead of <c>null</c>.
            </exception>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.SetCallback(Animancer.StringReference,System.Action)"/>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(Animancer.StringReference,System.Int32)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.SetNormalizedTime(System.Int32,System.Single)">
            <summary>[Pro-Only] Sets the <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> of the event at the specified `index`.</summary>
            <remarks>
            If multiple events have the same <see cref="F:Animancer.AnimancerEvent.normalizedTime"/>, this method will
            avoid re-arranging them where calling <see cref="M:Animancer.AnimancerEvent.Sequence.Remove(System.Int32)"/> then
            <see cref="M:Animancer.AnimancerEvent.Sequence.Add(Animancer.AnimancerEvent)"/> would always re-add the moved event
            as the last one with that time.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.SetNormalizedTime(Animancer.StringReference,System.Single)">
            <summary>[Pro-Only] Sets the <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> of the event with the specified `name`.</summary>
            <remarks>
            If multiple events have the same <see cref="F:Animancer.AnimancerEvent.normalizedTime"/>, this method will
            avoid re-arranging them where calling <see cref="M:Animancer.AnimancerEvent.Sequence.Remove(System.Int32)"/> then
            <see cref="M:Animancer.AnimancerEvent.Sequence.Add(Animancer.AnimancerEvent)"/> would always re-add the moved event
            as the last one with that time.
            </remarks>
            <exception cref="T:System.ArgumentException">There is no event with the specified `name`.</exception>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(Animancer.StringReference,System.Int32)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.SetNormalizedTime(Animancer.AnimancerEvent,System.Single)">
            <summary>[Pro-Only] Sets the <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> of the matching `animancerEvent`.</summary>
            <remarks>
            If multiple events have the same <see cref="F:Animancer.AnimancerEvent.normalizedTime"/>, this method will
            avoid re-arranging them where calling <see cref="M:Animancer.AnimancerEvent.Sequence.Remove(System.Int32)"/> then
            <see cref="M:Animancer.AnimancerEvent.Sequence.Add(Animancer.AnimancerEvent)"/> would always re-add the moved event
            as the last one with that time.
            </remarks>
            <exception cref="T:System.ArgumentException">There is no event matching the `animancerEvent`.</exception>
            <seealso cref="M:Animancer.AnimancerEvent.Sequence.IndexOfRequired(Animancer.AnimancerEvent)"/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Insert(System.Single)">
            <summary>[Pro-Only]
            Determines the index where a new event with the specified `normalizedTime` should
            be added in order to keep this sequence sorted, increases the <see cref="P:Animancer.AnimancerEvent.Sequence.Count"/>
            by one, doubles the <see cref="P:Animancer.AnimancerEvent.Sequence.Capacity"/> if required, moves any existing events
            to open up the chosen index, and returns that index.
            <para></para>
            </summary>
            <remarks>
            This overload starts searching for the desired index from the end of the sequence,
            based on the assumption that elements will usually be added in order.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Insert(System.Int32,System.Single)">
            <summary>[Pro-Only]
            Determines the index where a new event with the specified `normalizedTime` should
            be added in order to keep this sequence sorted, increases the <see cref="P:Animancer.AnimancerEvent.Sequence.Count"/>
            by one, doubles the <see cref="P:Animancer.AnimancerEvent.Sequence.Capacity"/> if required, moves any existing events
            to open up the chosen index, and returns that index.
            <para></para>
            This overload starts searching for the desired index from the `hint`.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Insert(System.Int32)">
            <summary>[Pro-Only]
            Increases the <see cref="P:Animancer.AnimancerEvent.Sequence.Count"/> by one, doubles the <see cref="P:Animancer.AnimancerEvent.Sequence.Capacity"/> if required,
            and moves any existing events to open up the `index`.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Remove(System.Int32)">
            <summary>[Pro-Only]
            Removes the event at the specified `index` from this sequence by decrementing the
            <see cref="P:Animancer.AnimancerEvent.Sequence.Count"/> and copying all events after the removed one down one place.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Remove(Animancer.StringReference)">
            <summary>[Pro-Only]
            Removes the event with the specified `name` from this sequence by decrementing the
            <see cref="P:Animancer.AnimancerEvent.Sequence.Count"/> and copying all events after the removed one down one place.
            Returns true if the event was found and removed.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Remove(Animancer.AnimancerEvent)">
            <summary>[Pro-Only]
            Removes the `animancerEvent` from this sequence by decrementing the
            <see cref="P:Animancer.AnimancerEvent.Sequence.Count"/> and copying all events after the removed one down one place.
            Returns true if the event was found and removed.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Clear">
            <summary>Removes all events, including the <see cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Clone">
            <summary>Creates a new <see cref="T:Animancer.AnimancerEvent.Sequence"/> and copies the contents of <c>this</c> into it.</summary>
            <remarks>To copy into an existing sequence, use <see cref="M:Animancer.AnimancerEvent.Sequence.CopyFrom(Animancer.AnimancerEvent.Sequence)"/> instead.</remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.CopyFrom(Animancer.AnimancerEvent.Sequence)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.CopyNamesFrom(Animancer.StringReference[],System.Int32)">
            <summary>Copies the given array into the <see cref="P:Animancer.AnimancerEvent.Sequence.Names"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.AddAllEvents(UnityEngine.AnimationClip)">
            <summary>[Pro-Only] Copies the <see cref="P:UnityEngine.AnimationClip.events"/> into this <see cref="T:Animancer.AnimancerEvent.Sequence"/>.</summary>
            <remarks>
            The <see cref="F:Animancer.AnimancerEvent.callback"/> of the new events will be empty and can be set by
            <see cref="M:Animancer.AnimancerEvent.Sequence.SetCallback(Animancer.StringReference,System.Action)"/>.
            <para></para>
            If you're going to play the `animation`, consider disabling <see cref="P:UnityEngine.Animator.fireEvents"/>
            so the events copied by this method are not triggered as <see cref="T:UnityEngine.AnimationEvent"/>s.
            Otherwise they would still trigger in addition to the <see cref="T:Animancer.AnimancerEvent"/>s copied here.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.CopyTo(Animancer.AnimancerEvent[],System.Int32)">
            <summary>[<see cref="T:System.Collections.Generic.ICollection`1"/>] [Pro-Only]
            Copies all the events from this sequence into the `array`, starting at the `index`.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.ContentsAreEqual(Animancer.AnimancerEvent.Sequence)">
            <summary>Are all events in this sequence identical to the ones in the `other` sequence?</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.AssertNormalizedTimes(Animancer.AnimancerState)">
            <summary>[Assert-Conditional]
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/>
            if any event is outside the range of <c>0 &lt;= normalizedTime &lt; 1</c>.
            </summary>
            <remarks>
            This excludes the <see cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/> since it works differently to other events.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.AssertNormalizedTimes(Animancer.AnimancerState,System.Boolean)">
            <summary>[Assert-Conditional]
            Calls <see cref="M:Animancer.AnimancerEvent.Sequence.AssertNormalizedTimes(Animancer.AnimancerState)"/> if `isLooping` is true.
            </summary>
        </member>
        <member name="T:Animancer.AnimancerEvent.Sequence.Serializable">
            <summary>
            Serializable data which can be used to construct an <see cref="T:Animancer.AnimancerEvent.Sequence"/> using
            <see cref="T:Animancer.StringAssetInternal"/>s and <see cref="T:Animancer.IInvokable"/>s.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">
            Animancer Events</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/Serializable
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.Serializable.NormalizedTimes">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The serialized <see cref="F:Animancer.AnimancerEvent.normalizedTime"/>s.</summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.Serializable.Callbacks">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The serialized <see cref="F:Animancer.AnimancerEvent.callback"/>s.</summary>
            <remarks>
            This array only needs to be large enough to hold the last item that isn't null.
            <para></para>
            If this array is larger than the <see cref="P:Animancer.AnimancerEvent.Sequence.Serializable.NormalizedTimes"/>, the first item
            with no corresponding time will be used as the <see cref="P:Animancer.AnimancerEvent.Sequence.OnEnd"/> callback
            and any others after that will be ignored.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.Serializable.Names">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The serialized <see cref="P:Animancer.AnimancerEvent.Sequence.Names"/>.</summary>
        </member>
        <member name="F:Animancer.AnimancerEvent.Sequence.Serializable.NormalizedTimesField">
            <summary>[Editor-Only] [Internal]
            The name of the array field which stores the <see cref="F:Animancer.AnimancerEvent.normalizedTime"/>s.
            </summary>
        </member>
        <member name="F:Animancer.AnimancerEvent.Sequence.Serializable.CallbacksField">
            <summary>[Editor-Only] [Internal]
            The name of the array field which stores the serialized <see cref="P:Animancer.AnimancerEvent.Sequence.Serializable.Callbacks"/>.
            </summary>
        </member>
        <member name="F:Animancer.AnimancerEvent.Sequence.Serializable.NamesField">
            <summary>[Editor-Only] [Internal]
            The name of the array field which stores the serialized <see cref="P:Animancer.AnimancerEvent.Sequence.Serializable.Names"/>.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.Serializable.InitializedEvents">
            <summary>Returns the <see cref="P:Animancer.AnimancerEvent.Sequence.Serializable.Events"/> or <c>null</c> if it wasn't yet initialized.</summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.Serializable.Events">
            <summary>
            The runtime <see cref="T:Animancer.AnimancerEvent.Sequence"/> compiled from this <see cref="T:Animancer.AnimancerEvent.Sequence.Serializable"/>.
            Each call after the first will return the same reference.
            </summary>
            <remarks>
            Unlike <see cref="M:Animancer.AnimancerEvent.Sequence.Serializable.GetEventsOptional"/>, this property will create an empty
            <see cref="T:Animancer.AnimancerEvent.Sequence"/> instead of returning null if there are no events.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Serializable.GetEventsOptional">
            <summary>
            Returns the runtime <see cref="T:Animancer.AnimancerEvent.Sequence"/> compiled from this <see cref="T:Animancer.AnimancerEvent.Sequence.Serializable"/>.
            Each call after the first will return the same reference.
            </summary>
            <remarks>
            This method returns null if the sequence would be empty anyway and is used by the implicit
            conversion from <see cref="T:Animancer.AnimancerEvent.Sequence.Serializable"/> to <see cref="T:Animancer.AnimancerEvent.Sequence"/>.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Serializable.op_Implicit(Animancer.AnimancerEvent.Sequence.Serializable)~Animancer.AnimancerEvent.Sequence">
            <summary>Calls <see cref="M:Animancer.AnimancerEvent.Sequence.Serializable.GetEventsOptional"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Serializable.GetInvoke(Animancer.IInvokable)">
            <summary>
            Returns the <see cref="M:Animancer.IInvokable.Invoke"/> if the `invokable` isn't <c>null</c>.
            Otherwise, returns <c>null</c>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Serializable.GetNormalizedEndTime(System.Single)">
            <summary>Returns the <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> of the <see cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>.</summary>
            <remarks>If the value is not set, the value is determined by <see cref="M:Animancer.AnimancerEvent.Sequence.GetDefaultNormalizedEndTime(System.Single)"/>.</remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Serializable.SetNormalizedEndTime(System.Single)">
            <summary>Sets the <see cref="F:Animancer.AnimancerEvent.normalizedTime"/> of the <see cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Serializable.Clone">
            <summary>Creates a new <see cref="T:Animancer.AnimancerEvent.Sequence.Serializable"/> and copies the contents of <c>this</c> into it.</summary>
            <remarks>To copy into an existing sequence, use <see cref="M:Animancer.AnimancerEvent.Sequence.Serializable.CopyFrom(Animancer.AnimancerEvent.Sequence.Serializable)"/> instead.</remarks>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Serializable.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Serializable.CopyFrom(Animancer.AnimancerEvent.Sequence.Serializable)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Serializable.UnityEngine#ISerializationCallbackReceiver#OnAfterDeserialize">
            <summary>[Editor-Only] Does nothing.</summary>
        </member>
        <member name="E:Animancer.AnimancerEvent.Sequence.Serializable.OnBeforeSerialize">
            <summary>[Editor-Only] [Internal]
            Called by <see cref="M:UnityEngine.ISerializationCallbackReceiver.OnBeforeSerialize"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Serializable.UnityEngine#ISerializationCallbackReceiver#OnBeforeSerialize">
            <summary>[Editor-Only] Ensures that the events are sorted by time (excluding the end event).</summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Sequence.Serializable.DisableCompactArrays">
            <summary>[Editor-Only] [Internal]
            Should the arrays be prevented from reducing their size when their last elements are unused?
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Serializable.CompactArrays">
            <summary>[Editor-Only] [Internal]
            Removes empty data from the ends of the arrays to reduce the serialized data size.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerEvent.Sequence.Serializable.Trim``1(``0[]@,System.Int32,System.Func{``0,System.Boolean})">
            <summary>[Editor-Only] Removes unimportant values from the end of the `array`.</summary>
        </member>
        <member name="T:Animancer.AnimancerEvent.IParameter">
            <summary>A non-generic interface for <see cref="T:Animancer.AnimancerEvent.Parameter`1"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/IParameter
        </member>
        <member name="P:Animancer.AnimancerEvent.IParameter.Value">
            <summary>The parameter value.</summary>
        </member>
        <member name="T:Animancer.AnimancerEvent.Parameter`1">
            <summary>
            Base class for <see cref="T:Animancer.IInvokable"/>s which assign the <see cref="P:Animancer.AnimancerEvent.CurrentParameter"/>.
            </summary>
            <remarks>
            Inherit from <see cref="T:Animancer.AnimancerEvent.ParameterBoxed`1"/>
            instead of this if <typeparamref name="T"/> is a value type to avoid repeated boxing costs.
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/Parameter_1
        </member>
        <member name="P:Animancer.AnimancerEvent.Parameter`1.Value">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The serialized <typeparamref name="T"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerEvent.Parameter`1.Animancer#AnimancerEvent#IParameter#Value">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerEvent.Parameter`1.Invoke">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.AnimancerEvent.ParameterBoxed`1">
            <summary>
            An <see cref="T:Animancer.AnimancerEvent.Parameter`1"/>s which internally boxes value types
            to avoid re-boxing them every <see cref="M:Animancer.AnimancerEvent.ParameterBoxed`1.Invoke"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer/ParameterBoxed_1
        </member>
        <member name="P:Animancer.AnimancerEvent.ParameterBoxed`1.Value">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.AnimancerEvent.ParameterBoxed`1.Animancer#AnimancerEvent#IParameter#Value">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerEvent.ParameterBoxed`1.Invoke">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerEvent.ParameterBoxed`1.UnityEngine#ISerializationCallbackReceiver#OnBeforeSerialize">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerEvent.ParameterBoxed`1.UnityEngine#ISerializationCallbackReceiver#OnAfterDeserialize">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.AnimancerEvent.ParameterObject">
            <summary>An <see cref="T:Animancer.AnimancerEvent.Parameter`1"/> for <see cref="T:UnityEngine.Object"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ParameterObject
        </member>
        <member name="T:Animancer.AnimancerEvent.ParameterString">
            <summary>An <see cref="T:Animancer.AnimancerEvent.Parameter`1"/> for <see cref="T:System.String"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ParameterString
        </member>
        <member name="T:Animancer.AnimancerEvent.ParameterBool">
            <summary>An <see cref="T:Animancer.AnimancerEvent.Parameter`1"/> for <see cref="T:System.Boolean"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ParameterBool
        </member>
        <member name="T:Animancer.AnimancerEvent.ParameterDouble">
            <summary>An <see cref="T:Animancer.AnimancerEvent.Parameter`1"/> for <see cref="T:System.Double"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ParameterDouble
        </member>
        <member name="T:Animancer.AnimancerEvent.ParameterFloat">
            <summary>An <see cref="T:Animancer.AnimancerEvent.Parameter`1"/> for <see cref="T:System.Single"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ParameterFloat
        </member>
        <member name="T:Animancer.AnimancerEvent.ParameterInt">
            <summary>An <see cref="T:Animancer.AnimancerEvent.Parameter`1"/> for <see cref="T:System.Int32"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ParameterInt
        </member>
        <member name="T:Animancer.AnimancerEvent.ParameterLong">
            <summary>An <see cref="T:Animancer.AnimancerEvent.Parameter`1"/> for <see cref="T:System.Int64"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ParameterLong
        </member>
        <member name="T:Animancer.AnimancerState">
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerState
            <summary>
            Base class for all states in an <see cref="T:Animancer.AnimancerGraph"/> graph which manages one or more
            <see cref="T:UnityEngine.Playables.Playable"/>s.
            </summary>
            
            <remarks>
            This class can be used as a custom yield instruction to wait until the animation either stops playing or
            reaches its end.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/playing/states">
            States</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerState
            
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerState
        </member>
        <member name="F:Animancer.AnimancerState._EventDispatcher">
            <summary>The system which manages the <see cref="P:Animancer.AnimancerState.SharedEvents"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerState.OwnedEvents">
            <summary>
            Events which will be triggered while this state plays
            based on its <see cref="P:Animancer.AnimancerState.NormalizedTime"/>.
            </summary>
            
            <remarks>
            This property tries to ensure that the event sequence is only referenced by this state.
            <list type="bullet">
            <item>
            If the reference was <c>null</c>,
            a new sequence will be created.
            </item>
            <item>
            If a reference was assigned to <see cref="P:Animancer.AnimancerState.SharedEvents"/>,
            it will be cloned so this state owns the clone.
            </item>
            </list>
            <para></para>
            Using <see cref="M:Animancer.AnimancerState.Events(System.Object)"/> or <see cref="M:Animancer.AnimancerState.Events(System.Object,Animancer.AnimancerEvent.Sequence@)"/>
            is often safer than this property since they help detect if multiple scripts are using the same
            state which could lead to unexpected bugs if they each assign conflicting callbacks.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">
            Animancer Events</see>
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerState.SharedEvents">
            <summary>
            Events which will be triggered while this state plays
            based on its <see cref="P:Animancer.AnimancerState.NormalizedTime"/>.
            </summary>
            
            <remarks>
            This reference is <c>null</c> by default and once assigned it may be shared by multiple states.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">
            Animancer Events</see>
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerState.HasEvents">
            <summary>Have the <see cref="P:Animancer.AnimancerState.SharedEvents"/> or <see cref="P:Animancer.AnimancerState.OwnedEvents"/> been initialized?</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">
            Animancer Events</see>
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerState.HasOwnedEvents">
            <summary>Have the <see cref="P:Animancer.AnimancerState.OwnedEvents"/> been initialized?</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">
            Animancer Events</see>
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerState.Events(System.Object,Animancer.AnimancerEvent.Sequence@)">
            <summary>
            If the <see cref="P:Animancer.AnimancerState.OwnedEvents"/> haven't been initialized yet,
            this method gets them and returns <c>true</c>.
            </summary>
            
            <remarks>
            This method tries to ensure that the event sequence is only referenced by this state.
            <list type="bullet">
            <item>
            If the reference was <c>null</c>,
            a new sequence will be created.
            </item>
            <item>
            If a reference was assigned to <see cref="P:Animancer.AnimancerState.SharedEvents"/>,
            it will be cloned so this state owns the clone.
            </item>
            </list>
            In both of those cases, this method returns <c>true</c>
            to indicate that the caller should initialize their event callbacks.
            <para></para>
            Also calls <see cref="M:Animancer.AnimancerState.AssertOwnership(System.Object)"/>.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">
            Animancer Events</see>
            <para></para>
            <strong>Example:</strong>
            <code>
            public static readonly StringReference EventName = "Event Name";
            
            ...
            
            AnimancerState state = animancerComponent.Play(animation);
            if (state.Events(this, out AnimancerEvent.Sequence events))
            {
                events.SetCallback(EventName, OnAnimationEvent);
                events.OnEnd = OnAnimationEnded;
            }
            </code>
            If you only need to initialize the End Event, 
            consider using <see cref="M:Animancer.AnimancerState.Events(System.Object)"/> instead.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerState.Events(System.Object)">
            <summary>
            If the <see cref="P:Animancer.AnimancerState.OwnedEvents"/> haven't been initialized yet,
            this method gets them and returns <c>true</c>.
            </summary>
            
            <remarks>
            This method tries to ensure that the event sequence is only referenced by this state.
            <list type="bullet">
            <item>
            If the reference was <c>null</c>,
            a new sequence will be created.
            </item>
            <item>
            If a reference was assigned to <see cref="P:Animancer.AnimancerState.SharedEvents"/>,
            it will be cloned so this state owns the clone.
            </item>
            </list>
            <para></para>
            Also calls <see cref="M:Animancer.AnimancerState.AssertOwnership(System.Object)"/>.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">
            Animancer Events</see>
            <para></para>
            <strong>Example:</strong>
            <code>
            AnimancerState state = animancerComponent.Play(animation);
            state.Events(this).OnEnd ??= OnAnimationEnded;
            </code>
            If you need to initialize more than just the End Event, 
            consider using <see cref="M:Animancer.AnimancerState.Events(System.Object,Animancer.AnimancerEvent.Sequence@)"/> instead.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerState.CopyEvents(Animancer.AnimancerState,Animancer.CloneContext)">
            <summary>Copies the contents of the <see cref="F:Animancer.AnimancerState._EventDispatcher"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerState.RaiseEventsDuringFadeOut">
            <summary>Should events be raised on a state which is currently fading out?</summary>
            <remarks>
            Default <c>false</c>.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">
            Animancer Events</see>
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerState.ShouldRaiseEvents">
            <summary>[Internal] Should this state check for events to invoke?</summary>
        </member>
        <member name="M:Animancer.AnimancerState.UpdateEvents">
            <summary>
            Checks if any events should be invoked based on the current time of this state.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerState.UpdateEventsRecursive(Animancer.AnimancerState)">
            <summary>
            Checks if any events should be invoked on the `parent` and its children recursively.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerState.UpdateEventsRecursive(Animancer.AnimancerState,System.Boolean)">
            <summary>
            Checks if any events should be invoked on the `parent` and its children recursively.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerState.UnsupportedEventsMessage">
            <summary>[Assert-Only]
            Returns <c>null</c> if Animancer Events will work properly on this type of state,
            or a message explaining why they might not work.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerState.Owner">
            <summary>[Assert-Only] An optional reference to the object that owns this state.</summary>
        </member>
        <member name="M:Animancer.AnimancerState.AssertOwnership(System.Object)">
            <summary>[Assert-Conditional]
            Sets the <see cref="P:Animancer.AnimancerState.Owner"/> and asserts that it wasn't already set to a different object.
            </summary>
            <remarks>This helps detect if multiple scripts attempt to manage the same state.</remarks>
        </member>
        <member name="M:Animancer.AnimancerState.SetGraph(Animancer.AnimancerGraph)">
            <summary>Sets the <see cref="P:Animancer.AnimancerNodeBase.Graph"/>.</summary>
            <exception cref="T:System.InvalidOperationException">
            The <see cref="P:Animancer.AnimancerNodeBase.Parent"/> has a different <see cref="P:Animancer.AnimancerNodeBase.Graph"/>.
            Setting the <see cref="P:Animancer.AnimancerNodeBase.Parent"/>'s <see cref="P:Animancer.AnimancerNodeBase.Graph"/>
            will apply to its children recursively because they must always match.
            </exception>
        </member>
        <member name="M:Animancer.AnimancerState.SetParent(Animancer.AnimancerNode)">
            <summary>Connects this state to the `parent` at its next available child index.</summary>
            <remarks>If the `parent` is <c>null</c>, this state will be disconnected from everything.</remarks>
        </member>
        <member name="M:Animancer.AnimancerState.SetParentInternal(Animancer.AnimancerNode,System.Int32)">
            <summary>[Internal]
            Directly sets the <see cref="P:Animancer.AnimancerNodeBase.Parent"/> and <see cref="P:Animancer.AnimancerNode.Index"/>
            without triggering any other connection methods.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerState.LayerIndex">
            <summary>
            The index of the <see cref="T:Animancer.AnimancerLayer"/> this state is connected to
            (determined by the <see cref="P:Animancer.AnimancerNodeBase.Parent"/>).
            </summary>
            <returns><c>-1</c> if this state isn't connected to a layer.</returns>
        </member>
        <member name="P:Animancer.AnimancerState.Key">
            <summary>
            The object used to identify this state in the graph <see cref="F:Animancer.AnimancerGraph.States"/> dictionary.
            Can be null.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerState.Clip">
            <summary>The <see cref="T:UnityEngine.AnimationClip"/> which this state plays (if any).</summary>
            <exception cref="T:System.NotSupportedException">This state type doesn't have a clip and you try to set it.</exception>
        </member>
        <member name="P:Animancer.AnimancerState.MainObject">
            <summary>The main object to show in the Inspector for this state (if any).</summary>
            <exception cref="T:System.NotSupportedException">This state type doesn't have a main object and you try to set it.</exception>
            <exception cref="T:System.InvalidCastException">This state can't use the assigned value.</exception>
        </member>
        <member name="P:Animancer.AnimancerState.MainObjectType">
            <summary>[Editor-Only] The base type which can be assigned to the <see cref="P:Animancer.AnimancerState.MainObject"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerState.ChangeMainObject``1(``0@,``0)">
            <summary>
            Sets the `currentObject` and calls <see cref="M:Animancer.AnimancerNode.RecreatePlayable"/>.
            If the `currentObject` was being used as the <see cref="P:Animancer.AnimancerState.Key"/> then it is changed as well.
            </summary>
            <exception cref="T:System.ArgumentNullException">The `newObject` is null.</exception>
        </member>
        <member name="P:Animancer.AnimancerState.AverageVelocity">
            <summary>The average velocity of the Root Motion caused by this state.</summary>
        </member>
        <member name="F:Animancer.AnimancerState._IsPlaying">
            <summary>Is the <see cref="P:Animancer.AnimancerState.Time"/> automatically advancing?</summary>
        </member>
        <member name="P:Animancer.AnimancerState.IsPlaying">
             <summary>Is the <see cref="P:Animancer.AnimancerState.Time"/> automatically advancing?</summary>
            
             <remarks>
             <strong>Example:</strong><code>
             void IsPlayingExample(AnimancerComponent animancer, AnimationClip clip)
             {
                 var state = animancer.States.GetOrCreate(clip);
            
                 if (state.IsPlaying)
                     Debug.Log(clip + " is playing");
                 else
                     Debug.Log(clip + " is paused");
            
                 state.IsPlaying = false;// Pause the animation.
            
                 state.IsPlaying = true;// Unpause the animation.
             }
             </code></remarks>
        </member>
        <member name="M:Animancer.AnimancerState.SetIsPlaying(System.Boolean)">
            <summary>
            Sets <see cref="P:Animancer.AnimancerState.IsPlaying"/> and applies it to the <see cref="T:UnityEngine.Playables.Playable"/>
            without calling <see cref="M:Animancer.AnimancerState.UpdateIsActive"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerState.OnSetIsPlaying">
            <summary>Called when the value of <see cref="P:Animancer.AnimancerState.IsPlaying"/> is changed.</summary>
        </member>
        <member name="M:Animancer.AnimancerState.CreatePlayable">
            <summary>Creates and assigns the <see cref="T:UnityEngine.Playables.Playable"/> managed by this state.</summary>
            <remarks>This method also applies the <see cref="P:Animancer.AnimancerNodeBase.Speed"/> and <see cref="P:Animancer.AnimancerState.IsPlaying"/>.</remarks>
        </member>
        <member name="P:Animancer.AnimancerState.IsCurrent">
            <summary>Is this state playing and not fading out?</summary>
            <remarks>
            If true, this state will usually be the <see cref="P:Animancer.AnimancerLayer.CurrentState"/> but that is not always
            the case.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerState.IsStopped">
            <summary>Is this state not playing and at 0 <see cref="P:Animancer.AnimancerNode.Weight"/>?</summary>
        </member>
        <member name="M:Animancer.AnimancerState.Play">
            <summary>
            Plays this state immediately, without any blending and without affecting any other states.
            </summary>
            <remarks>
            Unlike <see cref="M:Animancer.AnimancerLayer.Play(Animancer.AnimancerState)"/>,
            this method only affects this state and won't stop any others that are playing.
            <para></para>
            Sets <see cref="P:Animancer.AnimancerState.IsPlaying"/> = true and <see cref="P:Animancer.AnimancerNode.Weight"/> = 1.
            <para></para>
            Doesn't change the <see cref="P:Animancer.AnimancerState.Time"/> so it will continue from its current value.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerState.StopWithoutWeight">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerState.OnStartFade">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerState.InternalClearFade">
            <inheritdoc/>
        </member>
        <member name="F:Animancer.AnimancerState._ActiveIndex">
            <summary>
            The index of this state in its parent <see cref="P:Animancer.AnimancerLayer.ActiveStates"/> (or -1 if inactive).
            </summary>
            <remarks>
            If this state's direct parent isn't a layer (such as a child of a mixer), this value simply uses 0 to
            indicate active.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerState.IsActive">
            <summary>Is this state currently updating or affecting the animation output?</summary>
            <remarks>
            This property is true when <see cref="P:Animancer.AnimancerState.IsPlaying"/> or the <see cref="P:Animancer.AnimancerNode.Weight"/> or
            <see cref="P:Animancer.AnimancerNode.TargetWeight"/> are above 0.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerState.ShouldBeActive">
            <summary>[Internal] Should <see cref="P:Animancer.AnimancerState.IsActive"/> be true based on the current details of this state?</summary>
        </member>
        <member name="M:Animancer.AnimancerState.TryDeactivate">
            <summary>[Internal] If <see cref="P:Animancer.AnimancerState.IsActive"/> this method sets it to false and returns true.</summary>
        </member>
        <member name="M:Animancer.AnimancerState.UpdateIsActive">
            <summary>Called when <see cref="P:Animancer.AnimancerState.IsActive"/> might change.</summary>
        </member>
        <member name="M:Animancer.AnimancerState.SetWeight(System.Single)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.AnimancerState.Indexer">
            <summary>[Internal] An <see cref="T:Animancer.IIndexer`1"/> based on <see cref="F:Animancer.AnimancerState._ActiveIndex"/>.</summary>
        </member>
        <member name="F:Animancer.AnimancerState.Indexer.Graph">
            <summary>The <see cref="P:Animancer.AnimancerNodeBase.Graph"/>.</summary>
        </member>
        <member name="F:Animancer.AnimancerState.Indexer.ParentPlayable">
            <summary>The <see cref="T:UnityEngine.Playables.Playable"/> of the <see cref="P:Animancer.AnimancerNodeBase.Parent"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerState.Indexer.#ctor(Animancer.AnimancerGraph,UnityEngine.Playables.Playable)">
            <summary>Creates a new <see cref="T:Animancer.AnimancerState.Indexer"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerState.Indexer.GetIndex(Animancer.AnimancerState)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerState.Indexer.SetIndex(Animancer.AnimancerState,System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerState.Indexer.ClearIndex(Animancer.AnimancerState)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.AnimancerState.ActiveList">
            <summary>[Internal]
            An <see cref="T:Animancer.IndexedList`2"/> of <see cref="T:Animancer.AnimancerState"/>s
            which tracks <see cref="P:Animancer.AnimancerState.IsActive"/>.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerState.ActiveList.DefaultCapacity">
            <summary>The default <see cref="P:Animancer.IndexedList`2.Capacity"/> for newly created lists.</summary>
            <remarks>Default value is 4.</remarks>
        </member>
        <member name="M:Animancer.AnimancerState.ActiveList.#ctor(Animancer.AnimancerState.Indexer)">
            <summary>Creates a new <see cref="T:Animancer.AnimancerState.ActiveList"/> with the <see cref="P:Animancer.AnimancerState.ActiveList.DefaultCapacity"/>.</summary>
        </member>
        <member name="F:Animancer.AnimancerState._Time">
            <summary>
            The current time of the <see cref="T:UnityEngine.Playables.Playable"/>, retrieved by <see cref="P:Animancer.AnimancerState.Time"/> whenever the
            <see cref="F:Animancer.AnimancerState._TimeFrameID"/> is different from the <see cref="P:Animancer.AnimancerGraph.FrameID"/>.
            </summary>
        </member>
        <member name="F:Animancer.AnimancerState._TimeFrameID">
            <summary>
            The <see cref="P:Animancer.AnimancerGraph.FrameID"/> from when the <see cref="P:Animancer.AnimancerState.Time"/> was last retrieved from the
            <see cref="T:UnityEngine.Playables.Playable"/>.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerState.Time">
             <summary>The number of seconds that have passed since the start of this animation.</summary>
            
             <remarks>
             This value continues increasing after the animation passes the end of its
             <see cref="P:Animancer.AnimancerState.Length"/>, regardless of whether it <see cref="P:Animancer.AnimancerState.IsLooping"/> or not.
             <para></para>
             The underlying <see cref="T:System.Double"/> can be accessed via <see cref="P:Animancer.AnimancerState.TimeD"/>.
             <para></para>
             Setting this value will skip Events and Root Motion between the old and new time.
             Use <see cref="M:Animancer.AnimancerState.MoveTime(System.Single,System.Boolean)"/> instead if you don't want that behaviour.
             <para></para>
             <em>Animancer Lite does not allow this value to be changed in runtime builds (except resetting it to 0).</em>
             <para></para>
             <strong>Example:</strong><code>
             void TimeExample(AnimancerComponent animancer, AnimationClip clip)
             {
                 var state = animancer.Play(clip);
            
                 // Skip 0.5 seconds into the animation:
                 state.Time = 0.5f;
            
                 // Skip 50% of the way through the animation (0.5 in a range of 0 to 1):
                 state.NormalizedTime = 0.5f;
            
                 // Skip to the end of the animation and play backwards:
                 state.NormalizedTime = 1;
                 state.Speed = -1;
             }
             </code></remarks>
        </member>
        <member name="P:Animancer.AnimancerState.TimeD">
            <summary>The underlying <see cref="T:System.Double"/> value of <see cref="P:Animancer.AnimancerState.Time"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerState.RawTime">
            <summary>
            The internal implementation of <see cref="P:Animancer.AnimancerState.Time"/> which directly gets and sets the underlying value.
            </summary>
            <remarks>
            This property should generally not be accessed directly.
            <para></para>
            Setting this value will skip Events and Root Motion between the old and new time.
            Use <see cref="M:Animancer.AnimancerState.MoveTime(System.Single,System.Boolean)"/> instead if you don't want that behaviour.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerState.NormalizedTime">
             <summary>
             The <see cref="P:Animancer.AnimancerState.Time"/> of this state as a portion of the animation's <see cref="P:Animancer.AnimancerState.Length"/>, meaning the
             value goes from 0 to 1 as it plays from start to end, regardless of how long that actually takes.
             </summary>
             
             <remarks>
             This value continues increasing after the animation passes the end of its
             <see cref="P:Animancer.AnimancerState.Length"/>, regardless of whether it <see cref="P:Animancer.AnimancerState.IsLooping"/> or not.
             <para></para>
             The fractional part of the value (<c>NormalizedTime % 1</c>)
             is the percentage (0-1) of progress in the current loop
             while the integer part (<c>(int)NormalizedTime</c>)
             is the number of times the animation has been looped.
             <para></para>
             Setting this value will skip Events and Root Motion between the old and new time.
             Use <see cref="M:Animancer.AnimancerState.MoveTime(System.Single,System.Boolean)"/> instead if you don't want that behaviour.
             <para></para>
             <em>Animancer Lite does not allow this value to be changed in runtime builds (except resetting it to 0).</em>
             <para></para>
             <strong>Example:</strong><code>
             void TimeExample(AnimancerComponent animancer, AnimationClip clip)
             {
                 var state = animancer.Play(clip);
            
                 // Skip 0.5 seconds into the animation:
                 state.Time = 0.5f;
            
                 // Skip 50% of the way through the animation (0.5 in a range of 0 to 1):
                 state.NormalizedTime = 0.5f;
            
                 // Skip to the end of the animation and play backwards:
                 state.NormalizedTime = 1;
                 state.Speed = -1;
             }
             </code></remarks>
        </member>
        <member name="P:Animancer.AnimancerState.NormalizedTimeD">
            <summary>The underlying <see cref="T:System.Double"/> value of <see cref="P:Animancer.AnimancerState.NormalizedTime"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerState.MoveTime(System.Single,System.Boolean)">
            <summary>
            Sets the <see cref="P:Animancer.AnimancerState.Time"/> or <see cref="P:Animancer.AnimancerState.NormalizedTime"/>, but unlike those properties this method
            does not skip Events or Root Motion between the old and new time.
            </summary>
            <remarks>
            The Events and Root Motion will be applied during the next animation update.
            If you want to apply them immediately you can call <see cref="M:Animancer.AnimancerGraph.Evaluate"/>.
            <para></para>
            Events are triggered where <c>old time &lt;= event time &lt; new time</c>.
            <para></para>
            Avoid calling this method more than once per frame because doing so will cause Animation Events and Root
            Motion to be skipped due to an unfortunate design decision in the Playables API. Animancer Events would
            still be triggered, but only between the old time and the last new time you set (any other values would be
            ignored).
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerState.MoveTime(System.Double,System.Boolean)">
            <summary>
            Sets the <see cref="P:Animancer.AnimancerState.Time"/> or <see cref="P:Animancer.AnimancerState.NormalizedTime"/>, but unlike those properties this method
            does not skip Events or Root Motion between the old and new time.
            </summary>
            <remarks>
            The Events and Root Motion will be applied during the next animation update.
            If you want to apply them immediately you can call <see cref="M:Animancer.AnimancerGraph.Evaluate"/>.
            <para></para>
            Avoid calling this method more than once per frame because doing so will cause Animation Events and Root
            Motion to be skipped due to an unfortunate design decision in the Playables API. Animancer Events would
            still be triggered, but only between the old time and the last new time you set (any other values would be
            ignored).
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerState.NormalizedEndTime">
            <summary>
            The <see cref="P:Animancer.AnimancerState.NormalizedTime"/> after which the
            <see cref="P:Animancer.AnimancerEvent.Sequence.OnEnd"/> callback will be invoked every frame.
            </summary>
            <remarks>
            This is a wrapper around <see cref="P:Animancer.AnimancerEvent.Sequence.NormalizedEndTime"/>
            so that if the value hasn't been set (<see cref="F:System.Single.NaN"/>)
            it can be determined based on the <see cref="P:Animancer.AnimancerNodeBase.EffectiveSpeed"/>:
            positive speed ends at 1 and negative speed ends at 0.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerState.Duration">
             <summary>
             The number of seconds the animation will take to play fully at its current
             <see cref="P:Animancer.AnimancerNodeBase.EffectiveSpeed"/>.
             </summary>
             
             <remarks>
             For the time remaining from now until it reaches the end, use <see cref="P:Animancer.AnimancerState.RemainingDuration"/> instead.
             <para></para>
             Setting this value modifies the <see cref="P:Animancer.AnimancerNodeBase.Speed"/>, not the <see cref="P:Animancer.AnimancerState.Length"/>.
             <para></para>
             <em>Animancer Lite does not allow this value to be changed in runtime builds.</em>
             <para></para>
             <strong>Example:</strong><code>
             void PlayAnimation(AnimancerComponent animancer, AnimationClip clip)
             {
                 var state = animancer.Play(clip);
            
                 state.Duration = 1;// Play fully in 1 second.
                 state.Duration = 2;// Play fully in 2 seconds.
                 state.Duration = 0.5f;// Play fully in half a second.
                 state.Duration = -1;// Play backwards fully in 1 second.
                 state.NormalizedTime = 1; state.Duration = -1;// Play backwards from the end in 1 second.
             }
             </code></remarks>
        </member>
        <member name="P:Animancer.AnimancerState.RemainingDuration">
             <summary>
             The number of seconds this state will take to go from its current <see cref="P:Animancer.AnimancerState.NormalizedTime"/> to the
             <see cref="P:Animancer.AnimancerState.NormalizedEndTime"/> at its current <see cref="P:Animancer.AnimancerNodeBase.EffectiveSpeed"/>.
             </summary>
             
             <remarks>
             For the time it would take to play fully from the start, use the <see cref="P:Animancer.AnimancerState.Duration"/> instead.
             <para></para>
             Setting this value modifies the <see cref="P:Animancer.AnimancerNodeBase.EffectiveSpeed"/>, not the <see cref="P:Animancer.AnimancerState.Length"/>.
             <para></para>
             <em>Animancer Lite does not allow this value to be changed in runtime builds.</em>
             <para></para>
             <strong>Example:</strong><code>
             void PlayAnimation(AnimancerComponent animancer, AnimationClip clip)
             {
                 var state = animancer.Play(clip);
            
                 state.RemainingDuration = 1;// Play from the current time to the end in 1 second.
                 state.RemainingDuration = 2;// Play from the current time to the end in 2 seconds.
                 state.RemainingDuration = 0.5f;// Play from the current time to the end in half a second.
                 state.RemainingDuration = -1;// Play from the current time away from the end.
             }
             </code></remarks>
        </member>
        <member name="P:Animancer.AnimancerState.Length">
            <summary>
            The total time this state would take to play in seconds when <see cref="P:Animancer.AnimancerNodeBase.Speed"/> = 1.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerState.IsLooping">
            <summary>Will this state loop back to the start when it reaches the end?</summary>
            <remarks>
            Note that <see cref="P:Animancer.AnimancerState.Time"/> always continues increasing regardless of this value.
            See the comments on <see cref="P:Animancer.AnimancerState.Time"/> for more information.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerState.GetEventDispatchInfo(System.Single@,System.Single@,System.Boolean@)">
            <summary>
            Gets the details used to trigger <see cref="T:Animancer.AnimancerEvent"/>s on this state:
            <see cref="P:Animancer.AnimancerState.Length"/>, <see cref="P:Animancer.AnimancerState.NormalizedTime"/>, and <see cref="P:Animancer.AnimancerState.IsLooping"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerState.Destroy">
            <summary>Destroys the <see cref="T:UnityEngine.Playables.Playable"/> and cleans up this state.</summary>
            <remarks>
            This method is NOT called automatically, so when implementing a custom state type you must use
            <see cref="P:Animancer.AnimancerGraph.Disposables"/> if you need to guarantee that things will get cleaned up.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerState.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerState.CopyFrom(Animancer.AnimancerNode,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerState.CopyFrom(Animancer.AnimancerState,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerState.CopyFirstGraphAndKeyFrom(Animancer.AnimancerState,Animancer.CloneContext)">
            <summary>Sets the <see cref="P:Animancer.AnimancerNodeBase.Graph"/> and <see cref="P:Animancer.AnimancerState.Key"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerState.GatherAnimationClips(System.Collections.Generic.ICollection{UnityEngine.AnimationClip})">
            <summary>[<see cref="T:Animancer.IAnimationClipCollection"/>] Gathers all the animations in this state.</summary>
        </member>
        <member name="M:Animancer.AnimancerState.IsPlayingAndNotEnding">
            <summary>
            Returns true if the animation is playing and has not yet passed the
            <see cref="P:Animancer.AnimancerEvent.Sequence.EndEvent"/>.
            </summary>
            <remarks>
            This method is called by <see cref="M:System.Collections.IEnumerator.MoveNext"/> so this object can be used as a custom yield
            instruction to wait until it finishes.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerState.ToString">
            <summary>
            Returns the <see cref="P:Animancer.AnimancerNode.DebugName"/> if one is set, otherwise a string describing the type of
            this state and the name of the <see cref="P:Animancer.AnimancerState.MainObject"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerState.AppendDetails(System.Text.StringBuilder,System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerState.SetExpectFade(Animancer.AnimancerState,System.Single)">
            <summary>[Internal] Sets a flag for <see cref="F:Animancer.OptionalWarning.ExpectFade"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerState.SkipNextExpectFade">
            <summary>[Internal] Sets the next <see cref="M:Animancer.AnimancerState.AssertNotExpectingFade(Animancer.AnimancerState)"/> call to be skipped.</summary>
        </member>
        <member name="M:Animancer.AnimancerState.AssertNotExpectingFade(Animancer.AnimancerState)">
            <summary>[Internal] Call when playing a `state` without a fade to check <see cref="F:Animancer.OptionalWarning.ExpectFade"/>.</summary>
        </member>
        <member name="T:Animancer.NamedEventDictionary">
            <summary>A dictionary which maps event names to callbacks.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">
            Animancer Events</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/NamedEventDictionary
        </member>
        <member name="P:Animancer.NamedEventDictionary.Count">
            <summary>The number of items in this dictionary.</summary>
        </member>
        <member name="P:Animancer.NamedEventDictionary.Item(Animancer.StringReference)">
            <summary>Accesses a callback in this dictionary.</summary>
        </member>
        <member name="M:Animancer.NamedEventDictionary.Get(Animancer.StringReference)">
            <summary>Returns the callback registered using the `name`.</summary>
            <remarks>Returns <c>null</c> if nothing was registered.</remarks>
        </member>
        <member name="M:Animancer.NamedEventDictionary.Set(Animancer.StringReference,System.Action)">
            <summary>Registers the callback using the `name`, replacing anything previously registered.</summary>
        </member>
        <member name="M:Animancer.NamedEventDictionary.ContainsKey(Animancer.StringReference)">
            <summary>Are any callbacks registered for the `name`?</summary>
            <remarks>To get the registered callbacks at the same time, use <see cref="M:Animancer.NamedEventDictionary.TryGetValue(Animancer.StringReference,System.Action@)"/> instead.</remarks>
        </member>
        <member name="M:Animancer.NamedEventDictionary.TryGetValue(Animancer.StringReference,System.Action@)">
            <summary>Tries to get the `callback` registered with the `name` and returns <c>true</c> if successful.</summary>
        </member>
        <member name="M:Animancer.NamedEventDictionary.AddTo(Animancer.StringReference,System.Action)">
            <summary>Adds the `callback` to any existing ones registered with the `name`.</summary>
            <remarks>
            If you want an exception to be thrown if something is already registered with the `name`,
            use <see cref="M:Animancer.NamedEventDictionary.AddNew(Animancer.StringReference,System.Action)"/> instead.
            </remarks>
        </member>
        <member name="M:Animancer.NamedEventDictionary.AddNew(Animancer.StringReference,System.Action)">
            <summary>
            Registers the `callback` with the `name` but throws an <see cref="T:System.ArgumentException"/>
            if something was already registered with the same `name`.
            </summary>
            <remarks>
            This matches the standard <see cref="M:System.Collections.Generic.Dictionary`2.Add(`0,`1)"/> behaviour,
            unlike <see cref="M:Animancer.NamedEventDictionary.AddTo(Animancer.StringReference,System.Action)"/>.
            </remarks>
        </member>
        <member name="M:Animancer.NamedEventDictionary.AddTo``1(Animancer.StringReference,System.Action{``0})">
            <summary>
            Adds the `callback` to any existing ones registered with the `name`.
            <para></para>
            It will be invoked using <see cref="M:Animancer.AnimancerEvent.GetCurrentParameter``1"/> to get its parameter.
            </summary>
            <remarks>
            If you want an exception to be thrown if something is already registered with the `name`,
            use <see cref="M:Animancer.NamedEventDictionary.AddNew``1(Animancer.StringReference,System.Action{``0})"/> instead.
            <para></para>
            If <typeparamref name="T"/> is <see cref="T:System.String"/>,
            consider using <see cref="M:Animancer.NamedEventDictionary.AddTo(Animancer.StringReference,System.Action{System.String})"/> instead of this overload.
            <para></para>
            If you want to later remove the `callback`,
            you need to store and remove the returned <see cref="T:System.Action"/>.
            </remarks>
        </member>
        <member name="M:Animancer.NamedEventDictionary.AddNew``1(Animancer.StringReference,System.Action{``0})">
            <summary>
            Registers the `callback` with the `name` but throws an <see cref="T:System.ArgumentException"/>
            if something was already registered with the same `name`.
            <para></para>
            It will be invoked using <see cref="M:Animancer.AnimancerEvent.GetCurrentParameter``1"/> to get its parameter.
            </summary>
            <remarks>
            This matches the standard <see cref="M:System.Collections.Generic.Dictionary`2.Add(`0,`1)"/> behaviour,
            unlike <see cref="M:Animancer.NamedEventDictionary.AddTo``1(Animancer.StringReference,System.Action{``0})"/>.
            If <typeparamref name="T"/> is <see cref="T:System.String"/>,
            consider using <see cref="M:Animancer.NamedEventDictionary.AddTo(Animancer.StringReference,System.Action{System.String})"/> instead of this overload.
            <para></para>
            If you want to later remove the `callback`,
            you need to store and remove the returned <see cref="T:System.Action"/>.
            </remarks>
        </member>
        <member name="M:Animancer.NamedEventDictionary.AddTo(Animancer.StringReference,System.Action{System.String})">
            <summary>
            Adds the `callback` to any existing ones registered with the `name`.
            <para></para>
            It will be invoked using <see cref="M:System.Object.ToString"/> on the
            <see cref="P:Animancer.AnimancerEvent.CurrentParameter"/>.
            </summary>
            <remarks>
            If you want an exception to be thrown if something is already registered with the `name`,
            use <see cref="M:Animancer.NamedEventDictionary.AddNew``1(Animancer.StringReference,System.Action{``0})"/> instead.
            <para></para>
            If you want to later remove the `callback`,
            you need to store and remove the returned <see cref="T:System.Action"/>.
            </remarks>
        </member>
        <member name="M:Animancer.NamedEventDictionary.AddNew(Animancer.StringReference,System.Action{System.String})">
            <summary>
            Registers the `callback` with the `name` but throws an <see cref="T:System.ArgumentException"/>
            if something was already registered with the same `name`.
            <para></para>
            It will be invoked using <see cref="M:System.Object.ToString"/> on the
            <see cref="P:Animancer.AnimancerEvent.CurrentParameter"/>.
            </summary>
            <remarks>
            This matches the standard <see cref="M:System.Collections.Generic.Dictionary`2.Add(`0,`1)"/>
            behaviour, unlike <see cref="M:Animancer.NamedEventDictionary.AddTo(Animancer.StringReference,System.Action{System.String})"/>.
            <para></para>
            If you want to later remove the `callback`,
            you need to store and remove the returned <see cref="T:System.Action"/>.
            </remarks>
        </member>
        <member name="M:Animancer.NamedEventDictionary.AssertNotEndEvent(Animancer.StringReference)">
            <summary>[Assert-Conditional]
            Throws an <see cref="T:System.ArgumentException"/> if the `name` is the <see cref="F:Animancer.AnimancerEvent.EndEventName"/>.
            </summary>
            <remarks>
            In order to minimise the performance cost of End Events when there isn't one,
            the <see cref="T:Animancer.AnimancerEvent.Dispatcher"/> won't even check the end time
            when there is no <see cref="P:Animancer.AnimancerEvent.Sequence.OnEnd"/> callback.
            <para></para>
            That means if a callback was bound to the <see cref="F:Animancer.AnimancerEvent.EndEventName"/>
            it would be triggered by any state with an <see cref="P:Animancer.AnimancerEvent.Sequence.OnEnd"/>
            callback, but not by states without one. That would be very counterintuitive so it isn't allowed.
            </remarks>
            <exception cref="T:System.ArgumentException"/>
        </member>
        <member name="M:Animancer.NamedEventDictionary.Remove(Animancer.StringReference)">
            <summary>Removes all callbacks registered with the `name`.</summary>
        </member>
        <member name="M:Animancer.NamedEventDictionary.Remove(Animancer.StringReference,System.Action)">
            <summary>Removes a specific `callback` registered with the `name`.</summary>
        </member>
        <member name="M:Animancer.NamedEventDictionary.Clear">
            <summary>Removes everything from this dictionary.</summary>
        </member>
        <member name="M:Animancer.NamedEventDictionary.GetEnumerator">
            <summary>Returns an enumerator to go through every item in this dictionary.</summary>
        </member>
        <member name="P:Animancer.NamedEventDictionary.Keys">
            <summary>The names in this dictionary.</summary>
        </member>
        <member name="P:Animancer.NamedEventDictionary.Values">
            <summary>The values in this dictionary.</summary>
        </member>
        <member name="T:Animancer.FadeGroup">
            <summary>A group of <see cref="T:Animancer.AnimancerNode"/>s which are cross-fading.</summary>
            
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/blending/fading#custom-fade">
            Custom Fade</see>
            <para></para>
            <strong>Example:</strong><code>
            void FadeGroupExample(AnimancerComponent animancer, AnimationClip clip)
            {
                // Start fading the animation normally.
                var state = animancer.Play(clip, 0.25f);
                
                // Then a custom CalculateProgress delegate to modify it.
                state.FadeGroup.CalculateProgress = t => t * t;// Square the 0-1 value to start slow and end fast.
                
                // The Easing class has lots of standard mathematical curve functions.
                state.FadeGroup.CalculateProgress = Easing.Sine.InOut;
                
                // Or you can use the Easing.Function enum.
                state.FadeGroup.SetEasing(Easing.Function.SineInOut);
            }
            </code></remarks>
            
            https://kybernetik.com.au/animancer/api/Animancer/FadeGroup
            
        </member>
        <member name="P:Animancer.FadeGroup.NormalizedTime">
            <summary>The 0-1 progress of this fade.</summary>
        </member>
        <member name="P:Animancer.FadeGroup.TargetWeight">
            <summary>The <see cref="P:Animancer.AnimancerNode.Weight"/> which the <see cref="P:Animancer.FadeGroup.FadeIn"/> is moving towards.</summary>
        </member>
        <member name="P:Animancer.FadeGroup.FadeSpeed">
            <summary>The speed at which the <see cref="P:Animancer.FadeGroup.NormalizedTime"/> increases.</summary>
        </member>
        <member name="P:Animancer.FadeGroup.FadeDuration">
            <summary>The total amount of time this fade will take to complete (in seconds).</summary>
        </member>
        <member name="P:Animancer.FadeGroup.RemainingFadeDuration">
            <summary>The remaining amount of time this fade will take to complete (in seconds).</summary>
        </member>
        <member name="P:Animancer.FadeGroup.Graph">
            <summary>The <see cref="P:Animancer.AnimancerNodeBase.Graph"/>.</summary>
        </member>
        <member name="P:Animancer.FadeGroup.Parent">
            <summary>The <see cref="P:Animancer.AnimancerNodeBase.Graph"/>.</summary>
        </member>
        <member name="P:Animancer.FadeGroup.ParentPlayable">
            <summary>The <see cref="P:Animancer.AnimancerNodeBase.Playable"/> of the <see cref="P:Animancer.FadeGroup.Parent"/>.</summary>
        </member>
        <member name="P:Animancer.FadeGroup.KeepChildrenConnected">
            <summary>Should the fading nodes always be connected to the <see cref="P:Animancer.FadeGroup.ParentPlayable"/>?</summary>
        </member>
        <member name="P:Animancer.FadeGroup.FadeIn">
            <summary>The node which is fading towards the <see cref="P:Animancer.FadeGroup.TargetWeight"/>.</summary>
        </member>
        <member name="P:Animancer.FadeGroup.FadeOut">
            <summary>The nodes which are fading out.</summary>
        </member>
        <member name="P:Animancer.FadeGroup.Easing">
            <summary>[Pro-Only] An optional function for modifying the fade curve.</summary>
            <remarks>
            The <see cref="P:Animancer.FadeGroup.NormalizedTime"/> is passed in and the return value is multiplied by the
            <see cref="P:Animancer.FadeGroup.TargetWeight"/> to set the <see cref="P:Animancer.AnimancerNode.Weight"/> of the <see cref="P:Animancer.FadeGroup.FadeIn"/>.
            <para></para>
            <see cref="!:Animancer.Easing"/> has various common functions that could be used here.
            <para></para>
            This delegate can also be set by <see cref="!:FadeGroupExtensions.SetEasing"/> to avoid needing to null-check
            the <see cref="T:Animancer.FadeGroup"/>.
            <para></para>
            <em>Animancer Lite ignores this property in runtime builds.</em>
            </remarks>
        </member>
        <member name="M:Animancer.FadeGroup.SetNodes(Animancer.AnimancerNode,Animancer.AnimancerNode,System.Collections.Generic.IReadOnlyList{Animancer.AnimancerNode},System.Boolean)">
            <summary>Assigns the target nodes that will be faded.</summary>
        </member>
        <member name="M:Animancer.FadeGroup.SetNode(Animancer.AnimancerNode)">
            <summary>Assigns the <see cref="P:Animancer.FadeGroup.FadeIn"/> with no <see cref="P:Animancer.FadeGroup.FadeOut"/>.</summary>
        </member>
        <member name="M:Animancer.FadeGroup.SetFades">
            <summary>Assigns this to the <see cref="P:Animancer.AnimancerNode.FadeGroup"/>s.</summary>
        </member>
        <member name="M:Animancer.FadeGroup.ResetFades">
            <summary>Re-assigns this to the <see cref="P:Animancer.AnimancerNode.FadeGroup"/>s.</summary>
        </member>
        <member name="M:Animancer.FadeGroup.StartFade(System.Single,System.Single)">
            <summary>Sets the starting values and registers this fade to be updated.</summary>
        </member>
        <member name="M:Animancer.FadeGroup.StartFade">
            <summary>Registers this fade to be updated.</summary>
        </member>
        <member name="P:Animancer.FadeGroup.IsValid">
            <summary>Should this fade continue?</summary>
        </member>
        <member name="M:Animancer.FadeGroup.Contains(Animancer.AnimancerNode)">
            <summary>Does this fade affect the `node`?</summary>
        </member>
        <member name="M:Animancer.FadeGroup.GetTargetWeight(Animancer.AnimancerNode)">
            <summary>
            Returns the <see cref="P:Animancer.FadeGroup.TargetWeight"/> if the `node` is the <see cref="P:Animancer.FadeGroup.FadeIn"/>.
            Otherwise, returns 0.
            </summary>
        </member>
        <member name="M:Animancer.FadeGroup.Update">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.FadeGroup.ApplyWeights">
            <summary>
            Recalculates the node weights based on the <see cref="P:Animancer.FadeGroup.NormalizedTime"/>.
            </summary>
        </member>
        <member name="M:Animancer.FadeGroup.Cancel">
            <summary>Interrupts this fade and releases it to the <see cref="T:Animancer.ObjectPool`1"/>.</summary>
        </member>
        <member name="M:Animancer.FadeGroup.Remove(Animancer.AnimancerNode)">
            <summary>Removes the `node` from this <see cref="T:Animancer.FadeGroup"/> and returns true if successful.</summary>
        </member>
        <member name="M:Animancer.FadeGroup.AppendDescription(System.Text.StringBuilder,System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.FadeGroup.AssertNormalizedBounds(System.Func{System.Single,System.Single},System.String)">
            <summary>[Assert-Conditional] Checks <see cref="F:Animancer.OptionalWarning.FadeEasingBounds"/>.</summary>
        </member>
        <member name="M:Animancer.FadeGroup.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.FadeGroup.CopyFrom(Animancer.FadeGroup,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.FadeGroup.CloneForSingleTarget(Animancer.AnimancerNode,Animancer.AnimancerNode)">
            <summary>Creates a clone of this <see cref="T:Animancer.FadeGroup"/> for a single target node (`copyTo`).</summary>
        </member>
        <member name="T:Animancer.FadeGroup.Pool">
            <summary>An <see cref="T:Animancer.ObjectPool`1"/> for <see cref="T:Animancer.FadeGroup"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/Pool
        </member>
        <member name="F:Animancer.FadeGroup.Pool.Instance">
            <summary>Singleton.</summary>
        </member>
        <member name="M:Animancer.FadeGroup.Pool.New">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.FadeGroup.Pool.Acquire">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.FadeGroup.Pool.Release(Animancer.FadeGroup)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.NodeWeight">
            <summary>An <see cref="T:Animancer.AnimancerNode"/> and its <see cref="F:Animancer.NodeWeight.StartingWeight"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/NodeWeight
        </member>
        <member name="F:Animancer.NodeWeight.Node">
            <summary>The <see cref="T:Animancer.AnimancerNode"/>.</summary>
        </member>
        <member name="F:Animancer.NodeWeight.StartingWeight">
            <summary>The <see cref="P:Animancer.AnimancerNode.Weight"/> from when this struct was captured.</summary>
        </member>
        <member name="M:Animancer.NodeWeight.#ctor(Animancer.AnimancerNode)">
            <summary>Creates a new <see cref="T:Animancer.NodeWeight"/>.</summary>
        </member>
        <member name="M:Animancer.NodeWeight.#ctor(Animancer.AnimancerNode,System.Single)">
            <summary>Creates a new <see cref="T:Animancer.NodeWeight"/>.</summary>
        </member>
        <member name="M:Animancer.NodeWeight.#ctor(Animancer.NodeWeight,Animancer.CloneContext)">
            <summary>Creates a copy of `copyFrom`.</summary>
        </member>
        <member name="M:Animancer.NodeWeight.AppendDescription(System.Text.StringBuilder,System.Single)">
            <summary>Appends a detailed descrption of this object.</summary>
        </member>
        <member name="T:Animancer.AnimancerLayer">
             <summary>
             A layer on which animations can play with their states managed independantly of other layers while blending the
             output with those layers.
             </summary>
            
             <remarks>
             This class can be used as a custom yield instruction to wait until all animations finish playing.
             <para></para>
             <strong>Documentation:</strong>
             <see href="https://kybernetik.com.au/animancer/docs/manual/blending/layers">
             Layers</see>
             </remarks>
             https://kybernetik.com.au/animancer/api/Animancer/AnimancerLayer
             
        </member>
        <member name="M:Animancer.AnimancerLayer.#ctor(Animancer.AnimancerGraph,System.Int32)">
            <summary>[Internal] Creates a new <see cref="T:Animancer.AnimancerLayer"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.CreatePlayable(UnityEngine.Playables.Playable@)">
            <summary>Creates and assigns the <see cref="T:UnityEngine.Animations.AnimationMixerPlayable"/> managed by this layer.</summary>
        </member>
        <member name="P:Animancer.AnimancerLayer.Layer">
            <summary>A layer is its own root.</summary>
        </member>
        <member name="P:Animancer.AnimancerLayer.KeepChildrenConnected">
            <inheritdoc/>
        </member>
        <member name="F:Animancer.AnimancerLayer.States">
            <summary>The animation states connected to this layer.</summary>
        </member>
        <member name="P:Animancer.AnimancerLayer.ActiveStates">
            <summary>The states connected to this layer which are <see cref="P:Animancer.AnimancerState.IsActive"/>.</summary>
        </member>
        <member name="F:Animancer.AnimancerLayer.DefaultCapacity">
            <summary>The default <see cref="P:Animancer.AnimancerLayer.Capacity"/> is 8 unless changed.</summary>
            <remarks>
            This value only affects newly created layers.
            <para></para>
            This value should be set high enough to include all states a layer is likely to have. It's generally not
            particularly important though since expanding the capacity is fairly fast.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerLayer.Capacity">
            <summary>
            The number of states that can be connected to this layer before its <see cref="T:UnityEngine.Playables.Playable"/> needs to
            allocate more inputs.
            </summary>
            <remarks>Starts at the <see cref="F:Animancer.AnimancerLayer.DefaultCapacity"/> and doubles each time it needs to expand.</remarks>
            <exception cref="T:System.ArgumentException">This value cannot be set lower than the <see cref="P:Animancer.AnimancerLayer.ChildCount"/>.</exception>
        </member>
        <member name="P:Animancer.AnimancerLayer.CurrentState">
            <summary>The state of the animation currently being played.</summary>
            <remarks>
            Specifically, this is the state that was most recently started using any of the Play or CrossFade methods
            on this layer. States controlled individually via methods in the <see cref="T:Animancer.AnimancerState"/> itself will
            not register in this property.
            <para></para>
            Each time this property changes, the <see cref="P:Animancer.AnimancerLayer.CommandCount"/> is incremented.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerLayer.CommandCount">
            <summary>
            The number of times the <see cref="P:Animancer.AnimancerLayer.CurrentState"/> has changed. By storing this value and later comparing
            the stored value to the current value, you can determine whether the state has been changed since then,
            even it has changed back to the same state.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.IncrementCommandCount">
            <summary>[Editor-Only] [Internal] Increases the <see cref="P:Animancer.AnimancerLayer.CommandCount"/> by 1.</summary>
        </member>
        <member name="P:Animancer.AnimancerLayer.IsAdditive">
            <summary>[Pro-Only]
            Determines whether this layer is set to additive blending. Otherwise it will override any earlier layers.
            </summary>
        </member>
        <member name="F:Animancer.AnimancerLayer._Mask">
            <summary>[Internal] [Pro-Only] The mask that determines which bones this layer will affect.</summary>
        </member>
        <member name="P:Animancer.AnimancerLayer.Mask">
            <summary>[Pro-Only] The mask that determines which bones this layer will affect.</summary>
            <remarks>
            Don't assign the same mask repeatedly unless you have modified it.
            This property doesn't check if the mask is the same
            so repeatedly assigning the same thing will simply waste performance.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerLayer.AverageVelocity">
            <summary>
            The average velocity of the root motion of all currently playing animations, taking their current
            <see cref="P:Animancer.AnimancerNode.Weight"/> into account.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerLayer.ChildCount">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerLayer.GetChild(System.Int32)">
            <summary>Returns the state connected to the specified `index` as a child of this layer.</summary>
            <remarks>This method is identical to <see cref="P:Animancer.AnimancerLayer.Item(System.Int32)"/>.</remarks>
        </member>
        <member name="P:Animancer.AnimancerLayer.Item(System.Int32)">
            <summary>Returns the state connected to the specified `index` as a child of this layer.</summary>
            <remarks>This indexer is identical to <see cref="M:Animancer.AnimancerLayer.GetChild(System.Int32)"/>.</remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.OnAddChild(Animancer.AnimancerState)">
            <summary>Connects the `state` to this layer at its <see cref="P:Animancer.AnimancerNode.Index"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.OnRemoveChild(Animancer.AnimancerState)">
            <summary>Disconnects the `state` from this layer at its <see cref="P:Animancer.AnimancerNode.Index"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.ApplyChildActive(Animancer.AnimancerState,System.Boolean)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerLayer.ConnectAllStates">
            <summary>[Internal] Connects all states in this layer.</summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.DisconnectInactiveStates">
            <summary>[Internal] Disconnects all states which are not <see cref="P:Animancer.AnimancerState.IsActive"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.UpdateEvents">
            <summary>[Internal]
            Checks if any events should be invoked on any of the <see cref="P:Animancer.AnimancerLayer.ActiveStates"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.OnGraphDestroyed">
            <summary>[Internal] Cancels the current <see cref="T:Animancer.FadeGroup"/> so it can be object pooled.</summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.GetEnumerator">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerLayer.CopyFrom(Animancer.AnimancerNode,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerLayer.CopyFrom(Animancer.AnimancerLayer,Animancer.CloneContext)">
            <summary>Copies the details of `copyFrom` into this layer.</summary>
            <remarks>Call <see cref="M:Animancer.AnimancerLayer.CopyStatesFrom(Animancer.AnimancerLayer,Animancer.CloneContext,System.Boolean)"/> (as well) if you want to copy the states.</remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.CopyStatesFrom(Animancer.AnimancerLayer,Animancer.CloneContext,System.Boolean)">
            <summary>Copies the details of all states in `copyFrom` to their equivalent states in this layer.</summary>
            <remarks>
            Any states which do not have an equivalent in this layer will be cloned into this layer.
            <para></para>
            Call <see cref="M:Animancer.AnimancerLayer.CopyFrom(Animancer.AnimancerLayer,Animancer.CloneContext)"/> (as well)
            if you want to copy the details of the layer itself.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.CreateState(UnityEngine.AnimationClip)">
            <summary>Creates and returns a new <see cref="T:Animancer.ClipState"/> to play the `clip`.</summary>
            <remarks>
            <see cref="M:Animancer.AnimancerGraph.GetKey(UnityEngine.AnimationClip)"/> is used to determine the <see cref="P:Animancer.AnimancerState.Key"/>.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.CreateState(System.Object,UnityEngine.AnimationClip)">
            <summary>
            Creates and returns a new <see cref="T:Animancer.ClipState"/> to play the `clip` and registers it with the `key`.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.GetState(System.Object@)">
            <summary>Returns a state registered with the `key` and attached to this layer or null if none exist.</summary>
            <exception cref="T:System.ArgumentNullException">The `key` is null.</exception>
            <remarks>
            If a state is registered with the `key` but on a different layer, this method will use that state as the
            key and try to look up another state with it. This allows it to associate multiple states with the same
            original key.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.CreateIfNew(UnityEngine.AnimationClip,UnityEngine.AnimationClip)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerLayer.GetOrCreateState(UnityEngine.AnimationClip,System.Boolean)"/> for each of the specified clips.
            <para></para>
            If you only want to create a single state, use <see cref="M:Animancer.AnimancerLayer.CreateState(UnityEngine.AnimationClip)"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.CreateIfNew(UnityEngine.AnimationClip,UnityEngine.AnimationClip,UnityEngine.AnimationClip)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerLayer.GetOrCreateState(UnityEngine.AnimationClip,System.Boolean)"/> for each of the specified clips.
            <para></para>
            If you only want to create a single state, use <see cref="M:Animancer.AnimancerLayer.CreateState(UnityEngine.AnimationClip)"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.CreateIfNew(UnityEngine.AnimationClip,UnityEngine.AnimationClip,UnityEngine.AnimationClip,UnityEngine.AnimationClip)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerLayer.GetOrCreateState(UnityEngine.AnimationClip,System.Boolean)"/> for each of the specified clips.
            <para></para>
            If you only want to create a single state, use <see cref="M:Animancer.AnimancerLayer.CreateState(UnityEngine.AnimationClip)"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.CreateIfNew(UnityEngine.AnimationClip[])">
            <summary>
            Calls <see cref="M:Animancer.AnimancerLayer.GetOrCreateState(UnityEngine.AnimationClip,System.Boolean)"/> for each of the specified clips.
            <para></para>
            If you only want to create a single state, use <see cref="M:Animancer.AnimancerLayer.CreateState(UnityEngine.AnimationClip)"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.GetOrCreateState(UnityEngine.AnimationClip,System.Boolean)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerGraph.GetKey(UnityEngine.AnimationClip)"/> and returns the state registered with that key or
            creates one if it doesn't exist.
            <para></para>
            If the state already exists but has the wrong <see cref="P:Animancer.AnimancerState.Clip"/>, the `allowSetClip`
            parameter determines what will happen. False causes it to throw an <see cref="T:System.ArgumentException"/> while
            true allows it to change the <see cref="P:Animancer.AnimancerState.Clip"/>. Note that the change is somewhat costly to
            performance to use with caution.
            </summary>
            <exception cref="T:System.ArgumentException"/>
        </member>
        <member name="M:Animancer.AnimancerLayer.GetOrCreateState(Animancer.ITransition)">
            <summary>
            Returns the state registered with the <see cref="P:Animancer.IHasKey.Key"/> if there is one. Otherwise
            this method uses <see cref="M:Animancer.ITransition.CreateState"/> to create a new one and registers it with
            that key before returning it.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.GetOrCreateState(System.Object,UnityEngine.AnimationClip,System.Boolean)">
            <summary>Returns the state registered with the `key` or creates one if it doesn't exist.</summary>
            <exception cref="T:System.ArgumentException"/>
            <exception cref="T:System.ArgumentNullException">The `key` is null.</exception>
            <remarks>
            If the state already exists but has the wrong <see cref="P:Animancer.AnimancerState.Clip"/>, the `allowSetClip`
            parameter determines what will happen. False causes it to throw an <see cref="T:System.ArgumentException"/> while
            true allows it to change the <see cref="P:Animancer.AnimancerState.Clip"/>. Note that the change is somewhat costly to
            performance to use with caution.
            <para></para>
            See also: <see cref="M:Animancer.AnimancerStateDictionary.GetOrCreate(System.Object,UnityEngine.AnimationClip,System.Boolean)"/>.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.GetOrCreateState(Animancer.AnimancerState)">
            <summary>Returns the `state` if it's a child of this layer. Otherwise makes a clone of it.</summary>
        </member>
        <member name="P:Animancer.AnimancerLayer.WeightlessThreshold">
            <summary>
            The maximum <see cref="P:Animancer.AnimancerNode.Weight"/> that <see cref="M:Animancer.AnimancerLayer.GetOrCreateWeightlessState(Animancer.AnimancerState)"/> will treat as
            being weightless. Default = 0.1.
            </summary>
            <remarks>This allows states with very small weights to be reused instead of needing to create new ones.</remarks>
        </member>
        <member name="P:Animancer.AnimancerLayer.MaxCloneCount">
            <summary>
            The maximum number of duplicate states that can be created for a single clip when trying to get a
            weightless state. Exceeding this limit will cause it to just use the state with the lowest weight.
            Default = 3.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.GetOrCreateWeightlessState(Animancer.AnimancerState)">
            <summary>
            If the `state`'s <see cref="P:Animancer.AnimancerNode.Weight"/> is not currently low, this method finds or creates a
            copy of it which is low. he returned <see cref="P:Animancer.AnimancerState.Time"/> is also set to 0.
            </summary>
            <remarks>
            If this method would exceed the <see cref="P:Animancer.AnimancerLayer.MaxCloneCount"/>, it returns the clone with the lowest weight.
            <para></para>
            "Low" weight is defined as less than or equal to the <see cref="P:Animancer.AnimancerLayer.WeightlessThreshold"/>.
            <para></para>
            The <see href="https://kybernetik.com.au/animancer/docs/manual/blending/fading/modes">Fade Modes</see> page
            explains why clones are created.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.DestroyStates">
            <summary>Destroys all states connected to this layer.</summary>
            <remarks>This operation cannot be undone.</remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.OnStartFade">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerLayer.Play(UnityEngine.AnimationClip)">
            <summary>Stops all other animations on this layer, plays the `clip`, and returns its state.</summary>
            <remarks>
            The animation will continue playing from its current <see cref="P:Animancer.AnimancerState.Time"/>.
            To restart it from the beginning you can use <c>...Play(clip).Time = 0;</c>.
            <para></para>
            This method is safe to call repeatedly without checking whether the `clip` was already playing.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.Play(Animancer.AnimancerState)">
            <summary>Stops all other animations on the same layer, plays the `state`, and returns it.</summary>
            <remarks>
            The animation will continue playing from its current <see cref="P:Animancer.AnimancerState.Time"/>.
            To restart it from the beginning you can use <c>...Play(state).Time = 0;</c>.
            <para></para>
            This method is safe to call repeatedly without checking whether the `state` was already playing.
            </remarks>
            <exception cref="T:System.InvalidOperationException">
            The <see cref="P:Animancer.AnimancerNodeBase.Parent"/> is another state (likely a <see cref="T:Animancer.ManualMixerState"/>).
            It must be either null or a layer.
            </exception>
        </member>
        <member name="M:Animancer.AnimancerLayer.Play(UnityEngine.AnimationClip,System.Single,Animancer.FadeMode)">
            <summary>
            Starts fading in the `clip` over the course of the `fadeDuration`
            while fading out all others in the same layer. Returns its state.
            </summary>
            <remarks>
            If the `state` was already playing and fading in with less time remaining than the `fadeDuration`,
            this method will allow it to complete the existing fade rather than starting a slower one.
            <para></para>
            If the layer currently has 0 <see cref="P:Animancer.AnimancerNode.Weight"/>,
            this method will fade in the layer itself and simply <see cref="M:Animancer.AnimancerState.Play"/> the `state`.
            <para></para>
            This method is safe to call repeatedly without checking whether the `state` was already playing.
            <para></para>
            <em>Animancer Lite only allows the default `fadeDuration` (0.25 seconds) in runtime builds.</em>
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.Play(Animancer.AnimancerState,System.Single,Animancer.FadeMode)">
            <summary>
            Starts fading in the `state` over the course of the `fadeDuration` while fading out all others in this
            layer. Returns the `state`.
            </summary>
            <remarks>
            If the `state` was already playing and fading in with less time remaining than the `fadeDuration`, this
            method will allow it to complete the existing fade rather than starting a slower one.
            <para></para>
            If the layer currently has 0 <see cref="P:Animancer.AnimancerNode.Weight"/>, this method will fade in the layer itself
            and simply <see cref="M:Animancer.AnimancerState.Play"/> the `state`.
            <para></para>
            This method is safe to call repeatedly without checking whether the `state` was already playing.
            <para></para>
            <em>Animancer Lite only allows the default `fadeDuration` (0.25 seconds) in runtime builds.</em>
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.IsAlreadyFadingIn(Animancer.AnimancerState,System.Single)">
            <summary>Is the `state` already faded in or fading in with shorter than the given `fadeDuration`?</summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.GetFade">
            <summary>Clears and reuses the existing fade if there is one. Otherwise gets one from the object pool.</summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.Play(Animancer.ITransition)">
            <summary>
            Creates a state for the `transition` if it didn't already exist, then calls
            <see cref="M:Animancer.AnimancerLayer.Play(Animancer.AnimancerState)"/> or <see cref="M:Animancer.AnimancerLayer.Play(Animancer.AnimancerState,System.Single,Animancer.FadeMode)"/>
            depending on the <see cref="P:Animancer.ITransition.FadeDuration"/>.
            </summary>
            <remarks>
            This method is safe to call repeatedly without checking whether the `transition` was already playing.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.Play(Animancer.ITransition,System.Single,Animancer.FadeMode)">
            <summary>
            Creates a state for the `transition` if it didn't already exist, then calls
            <see cref="M:Animancer.AnimancerLayer.Play(Animancer.AnimancerState)"/> or <see cref="M:Animancer.AnimancerLayer.Play(Animancer.AnimancerState,System.Single,Animancer.FadeMode)"/>
            depending on the <see cref="P:Animancer.ITransition.FadeDuration"/>.
            </summary>
            <remarks>
            This method is safe to call repeatedly without checking whether the `transition` was already playing.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.TryPlay(System.Object)">
            <summary>
            Stops all other animations on this layer,
            plays the animation registered with the `key`,
            and returns the animation's state.
            </summary>
            <remarks>
            If no state is registered with the `key`, this method does nothing and returns null.
            <para></para>
            The animation will continue playing from its current <see cref="P:Animancer.AnimancerState.Time"/>.
            To restart it from the beginning you can simply set the returned state's time to 0.
            <para></para>
            This method is safe to call repeatedly without checking whether the animation was already playing.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.TryPlay(Animancer.IHasKey)">
            <summary>
            Stops all other animations on this layer,
            plays the animation registered with the `key`,
            and returns the animation's state.
            </summary>
            <remarks>
            If no state is registered with the `key`, this method does nothing and returns null.
            <para></para>
            The animation will continue playing from its current <see cref="P:Animancer.AnimancerState.Time"/>.
            To restart it from the beginning you can simply set the returned state's time to 0.
            <para></para>
            This method is safe to call repeatedly without checking whether the animation was already playing.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.TryPlay(System.Object,System.Single,Animancer.FadeMode)">
            <summary>
            Starts fading in the animation registered with the `key`
            while fading out all others in the same layer over the course of the `fadeDuration`
            and returns the animation's state.
            </summary>
            <remarks>
            If no state is registered with the `key`, this method does nothing and returns null.
            <para></para>
            If the `state` was already playing and fading in with less time remaining than the `fadeDuration`,
            this method allows it to continue the existing fade rather than starting a slower one.
            <para></para>
            If the layer currently has 0 <see cref="P:Animancer.AnimancerNode.Weight"/>, this method will
            fade in the layer itself and simply <see cref="M:Animancer.AnimancerState.Play"/> the `state`.
            <para></para>
            This method is safe to call repeatedly without checking whether the animation was already playing.
            <para></para>
            <em>Animancer Lite only allows the default `fadeDuration` (0.25 seconds) in runtime builds.</em>
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.TryPlay(Animancer.IHasKey,System.Single,Animancer.FadeMode)">
            <summary>
            Starts fading in the animation registered with the `key`
            while fading out all others in the same layer over the course of the `fadeDuration`
            and returns the animation's state.
            </summary>
            <remarks>
            If no state is registered with the `key`, this method does nothing and returns null.
            <para></para>
            If the `state` was already playing and fading in with less time remaining than the `fadeDuration`,
            this method allows it to continue the existing fade rather than starting a slower one.
            <para></para>
            If the layer currently has 0 <see cref="P:Animancer.AnimancerNode.Weight"/>, this method will
            fade in the layer itself and simply <see cref="M:Animancer.AnimancerState.Play"/> the `state`.
            <para></para>
            This method is safe to call repeatedly without checking whether the animation was already playing.
            <para></para>
            <em>Animancer Lite only allows the default `fadeDuration` (0.25 seconds) in runtime builds.</em>
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerLayer.EvaluateFadeMode(Animancer.FadeMode,Animancer.AnimancerState@,System.Single,System.Single@,System.Single@)">
            <summary>Manipulates the other parameters according to the `mode`.</summary>
            <exception cref="T:System.ArgumentException">
            The <see cref="P:Animancer.AnimancerState.Clip"/> is null when using <see cref="F:Animancer.FadeMode.FromStart"/> or
            <see cref="F:Animancer.FadeMode.NormalizedFromStart"/>.
            </exception>
        </member>
        <member name="M:Animancer.AnimancerLayer.StopWithoutWeight">
            <summary>
            Sets <see cref="P:Animancer.AnimancerNode.Weight"/> = 0 and calls <see cref="M:Animancer.AnimancerNode.Stop"/>
            on all animations to stop them from playing and rewind them to the start.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.IsPlayingClip(UnityEngine.AnimationClip)">
            <summary>
            Returns true if the `clip` is currently being played by at least one state.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.IsAnyStatePlaying">
            <summary>
            Returns true if at least one animation is being played.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.IsPlayingAndNotEnding">
            <summary>
            Returns true if the <see cref="P:Animancer.AnimancerLayer.CurrentState"/> is playing and hasn't yet reached its end.
            <para></para>
            This method is called by <see cref="M:System.Collections.IEnumerator.MoveNext"/> so this object can be used as a custom yield
            instruction to wait until it finishes.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.GetTotalChildWeight">
            <summary>
            Calculates the total <see cref="P:Animancer.AnimancerNode.Weight"/> of all states in this layer.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerLayer.ApplyAnimatorIK">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.AnimancerLayer.ApplyFootIK">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerLayer.GatherAnimationClips(System.Collections.Generic.ICollection{UnityEngine.AnimationClip})">
            <summary>[<see cref="T:Animancer.IAnimationClipCollection"/>]
            Gathers all the animations in this layer.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.ToString">
            <summary>The Inspector display name of this layer.</summary>
        </member>
        <member name="M:Animancer.AnimancerLayer.AppendDetails(System.Text.StringBuilder,System.String)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.AnimancerNode">
            <summary>Base class for <see cref="T:UnityEngine.Playables.Playable"/> wrapper objects in an <see cref="T:Animancer.AnimancerGraph"/>.</summary>
            <remarks>This is the base class of <see cref="T:Animancer.AnimancerLayer"/> and <see cref="T:Animancer.AnimancerState"/>.</remarks>
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerNode
        </member>
        <member name="F:Animancer.AnimancerNode._IsInspectorExpanded">
            <summary>[Editor-Only] [Internal] Indicates whether the Inspector details for this node are expanded.</summary>
        </member>
        <member name="M:Animancer.AnimancerNode.CreatePlayable">
            <summary>Creates and assigns the <see cref="T:UnityEngine.Playables.Playable"/> managed by this node.</summary>
            <remarks>This method also applies the <see cref="P:Animancer.AnimancerNodeBase.Speed"/> if it was set beforehand.</remarks>
        </member>
        <member name="M:Animancer.AnimancerNode.CreatePlayable(UnityEngine.Playables.Playable@)">
            <summary>Creates and assigns the <see cref="T:UnityEngine.Playables.Playable"/> managed by this node.</summary>
        </member>
        <member name="M:Animancer.AnimancerNode.DestroyPlayable">
            <summary>Destroys the <see cref="T:UnityEngine.Playables.Playable"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerNode.RecreatePlayable">
            <summary>Calls <see cref="M:Animancer.AnimancerNode.DestroyPlayable"/> and <see cref="M:Animancer.AnimancerNode.CreatePlayable"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerNode.RecreatePlayableRecursive">
            <summary>Calls <see cref="M:Animancer.AnimancerNode.RecreatePlayable"/> on this node and all its children recursively.</summary>
        </member>
        <member name="M:Animancer.AnimancerNode.CopyFrom(Animancer.AnimancerNode,Animancer.CloneContext)">
            <summary>Copies the details of `copyFrom` into this node, replacing its previous contents.</summary>
        </member>
        <member name="P:Animancer.AnimancerNode.Index">
            <summary>The index of the port this node is connected to on the parent's <see cref="T:UnityEngine.Playables.Playable"/>.</summary>
            <remarks>
            A negative value indicates that it is not assigned to a port.
            <para></para>
            Indices are generally assigned starting from 0, ascending in the order they are connected to their layer.
            They will not usually change unless the <see cref="P:Animancer.AnimancerNodeBase.Parent"/> changes or another state on
            the same layer is destroyed so the last state is swapped into its place to avoid shuffling everything down
            to cover the gap.
            <para></para>
            The setter is internal so user defined states cannot set it incorrectly. Ideally,
            <see cref="T:Animancer.AnimancerLayer"/> should be able to set the port in its constructor and
            <see cref="M:Animancer.AnimancerState.SetParent(Animancer.AnimancerNode)"/> should also be able to set it, but classes that further inherit from
            there should not be able to change it without properly calling that method.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerNode.#ctor">
            <summary>Creates a new <see cref="T:Animancer.AnimancerNode"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerNode.TraceConstructor">
            <summary>[Assert-Only]
            Should a <see cref="T:System.Diagnostics.StackTrace"/> be captured in the constructor of all new nodes so
            <see cref="F:Animancer.OptionalWarning.UnusedNode"/> can include it in the warning if that node ends up being unused?
            </summary>
            <remarks>This has a notable performance cost so it should only be used when trying to identify a problem.</remarks>
        </member>
        <member name="F:Animancer.AnimancerNode._ConstructorStackTrace">
            <summary>[Assert-Only]
            The stack trace of the constructor (or null if <see cref="P:Animancer.AnimancerNode.TraceConstructor"/> was false).
            </summary>
        </member>
        <member name="M:Animancer.AnimancerNode.GetConstructorStackTrace(Animancer.AnimancerNode)">
            <summary>[Assert-Only]
            Returns the stack trace of the constructor (or null if <see cref="P:Animancer.AnimancerNode.TraceConstructor"/> was false).
            </summary>
        </member>
        <member name="M:Animancer.AnimancerNode.Finalize">
            <summary>[Assert-Only] Checks <see cref="F:Animancer.OptionalWarning.UnusedNode"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerNode.ConnectChildUnsafe(System.Int32,Animancer.AnimancerNode)">
            <summary>Connects the `child`'s <see cref="T:UnityEngine.Playables.Playable"/> to this node.</summary>
            <remarks>This method is NOT safe to call if the child was already connected.</remarks>
        </member>
        <member name="M:Animancer.AnimancerNode.DisconnectChildSafe(System.Int32)">
            <summary>Disconnects the <see cref="T:UnityEngine.Playables.Playable"/> of the child at the specified `index` from this node.</summary>
            <remarks>This method is safe to call if the child was already disconnected.</remarks>
        </member>
        <member name="M:Animancer.AnimancerNode.IsPlayingAndNotEnding">
            <summary>Is this node playing and not yet at its end?</summary>
            <remarks>
            This method is called by <see cref="M:System.Collections.IEnumerator.MoveNext"/> so this object can be used as a custom yield
            instruction to wait until it finishes.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerNode.GetChildNode(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerNode.GetChild(System.Int32)">
            <summary>Returns the state connected to the specified `index` as a child of this node.</summary>
            <remarks>When overriding, don't call this base method because it throws an exception.</remarks>
            <exception cref="T:System.NotSupportedException">This node can't have children.</exception>
        </member>
        <member name="M:Animancer.AnimancerNode.OnAddChild(Animancer.AnimancerState)">
            <summary>Called when a child is connected with this node as its <see cref="P:Animancer.AnimancerNodeBase.Parent"/>.</summary>
            <remarks>When overriding, don't call this base method because it throws an exception.</remarks>
            <exception cref="T:System.NotSupportedException">This node can't have children.</exception>
        </member>
        <member name="M:Animancer.AnimancerNode.GetEnumerator">
            <summary>Gets an enumerator for all of this node's child states.</summary>
        </member>
        <member name="F:Animancer.AnimancerNode._Weight">
            <summary>[Internal] The current blend weight of this node. Accessed via <see cref="P:Animancer.AnimancerNode.Weight"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerNode.Weight">
             <summary>The current blend weight of this node which determines how much it affects the final output.</summary>
             
             <remarks>
             0 has no effect while 1 applies the full effect and values inbetween apply a proportional effect.
             <para></para>
             Setting this property cancels any fade currently in progress. If you don't wish to do that, you can use
             <see cref="M:Animancer.AnimancerNode.SetWeight(System.Single)"/> instead.
             <para></para>
             <em>Animancer Lite only allows this value to be set to 0 or 1 in runtime builds.</em>
             </remarks>
            
             <example>
             Calling <see cref="M:Animancer.AnimancerLayer.Play(UnityEngine.AnimationClip)"/> immediately sets the weight of all states to 0
             and the new state to 1. Note that this is separate from other values like
             <see cref="P:Animancer.AnimancerState.IsPlaying"/> so a state can be paused at any point and still show its pose on the
             character or it could be still playing at 0 weight if you want it to still trigger events (though states
             are normally stopped when they reach 0 weight so you would need to explicitly set it to playing again).
             <para></para>
             Calling <see cref="M:Animancer.AnimancerLayer.Play(UnityEngine.AnimationClip,System.Single,Animancer.FadeMode)"/> doesn't immediately change
             the weights, but instead calls <see cref="M:Animancer.AnimancerNode.StartFade(System.Single,System.Single)"/> on every state to set their
             <see cref="P:Animancer.AnimancerNode.TargetWeight"/> and <see cref="P:Animancer.AnimancerNode.FadeSpeed"/>. Then every update each state's weight will move
             towards that target value at that speed.
             </example>
        </member>
        <member name="M:Animancer.AnimancerNode.SetWeight(System.Single)">
            <summary>
            Sets the current blend weight of this node which determines how much it affects the final output.
            0 has no effect while 1 applies the full effect of this node.
            </summary>
            <remarks>
            This method allows any fade currently in progress to continue. If you don't wish to do that, you can set
            the <see cref="P:Animancer.AnimancerNode.Weight"/> property instead.
            <para></para>
            <em>Animancer Lite only allows this value to be set to 0 or 1 in runtime builds.</em>
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerNode.SetWeightInternal(System.Single)">
            <summary>The internal non-<c>virtual</c> implementation of <see cref="M:Animancer.AnimancerNode.SetWeight(System.Single)"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerNode.BaseWeight">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.AnimancerNode.EffectiveWeight">
            <summary>
            The <see cref="P:Animancer.AnimancerNode.Weight"/> of this state multiplied by the <see cref="P:Animancer.AnimancerNode.Weight"/> of each of its parents down
            the hierarchy to determine how much this state affects the final output.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerNode.FadeGroup">
            <summary>The current fade being applied to this node (if any).</summary>
        </member>
        <member name="P:Animancer.AnimancerNode.TargetWeight">
            <summary>
            The desired <see cref="P:Animancer.AnimancerNode.Weight"/> which this node is fading towards according to the
            <see cref="P:Animancer.AnimancerNode.FadeSpeed"/>.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerNode.FadeSpeed">
            <summary>The speed at which this node is fading towards the <see cref="P:Animancer.AnimancerNode.TargetWeight"/>.</summary>
            <remarks>
            This value isn't affected by this node's <see cref="P:Animancer.AnimancerNodeBase.Speed"/>,
            but is affected by its parents.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerNode.StartFade(System.Single)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerNode.OnStartFade"/> and starts fading the <see cref="P:Animancer.AnimancerNode.Weight"/> over the course
            of the <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/> (in seconds).
            </summary>
            <remarks>
            If the `targetWeight` is 0 then <see cref="M:Animancer.AnimancerNode.Stop"/> will be called when the fade is complete.
            <para></para>
            If the <see cref="P:Animancer.AnimancerNode.Weight"/> is already equal to the `targetWeight` then the fade will end
            immediately.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerNode.StartFade(System.Single,System.Single)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerNode.OnStartFade"/> and starts fading the <see cref="P:Animancer.AnimancerNode.Weight"/>
            over the course of the `fadeDuration` (in seconds).
            </summary>
            <remarks>
            If the `targetWeight` is 0 then <see cref="M:Animancer.AnimancerNode.Stop"/> will be called when the fade is complete.
            <para></para>
            If the <see cref="P:Animancer.AnimancerNode.Weight"/> is already equal to the `targetWeight`
            then the fade will end immediately.
            <para></para>
            <em>Animancer Lite only allows a `targetWeight` of 0 or 1
            and the default `fadeDuration` (0.25 seconds) in runtime builds.</em>
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerNode.OnStartFade">
            <summary>Called by <see cref="M:Animancer.AnimancerNode.StartFade(System.Single,System.Single)"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerNode.CancelFade">
            <summary>Removes this node from the <see cref="P:Animancer.AnimancerNode.FadeGroup"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerNode.InternalClearFade">
            <summary>[Internal] Called by <see cref="M:Animancer.FadeGroup.Remove(Animancer.AnimancerNode)"/>.</summary>
            <remarks>Not called when a fade fully completes.</remarks>
        </member>
        <member name="M:Animancer.AnimancerNode.Stop">
            <summary>Stops the animation and makes it inactive immediately so it no longer affects the output.</summary>
            <remarks>
            Sets <see cref="P:Animancer.AnimancerNode.Weight"/> = 0 by default unless overridden.
            <para></para>
            Note that playing something new will automatically stop the old animation.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerNode.StopWithoutWeight">
            <summary>[Internal] Stops this node without setting its <see cref="P:Animancer.AnimancerNode.Weight"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerNode.ApplyParentAnimatorIK">
            <summary>
            Should setting the <see cref="P:Animancer.AnimancerNodeBase.Parent"/>
            also set this node's <see cref="P:Animancer.AnimancerNode.ApplyAnimatorIK"/> to match it?
            Default is true.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerNode.ApplyParentFootIK">
            <summary>
            Should setting the <see cref="P:Animancer.AnimancerNodeBase.Parent"/>
            also set this node's <see cref="P:Animancer.AnimancerNode.ApplyFootIK"/> to match it?
            Default is true.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerNode.CopyIKFlags(Animancer.AnimancerNodeBase)">
            <summary>
            Copies the IK settings from `copyFrom` into this node:
            <list type="bullet">
            <item>If <see cref="P:Animancer.AnimancerNode.ApplyParentAnimatorIK"/> is true, copy <see cref="P:Animancer.AnimancerNode.ApplyAnimatorIK"/>.</item>
            <item>If <see cref="P:Animancer.AnimancerNode.ApplyParentFootIK"/> is true, copy <see cref="P:Animancer.AnimancerNode.ApplyFootIK"/>.</item>
            </list>
            </summary>
        </member>
        <member name="P:Animancer.AnimancerNode.ApplyAnimatorIK">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.AnimancerNode.ApplyFootIK">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.AnimancerNode.DebugName">
            <summary>[Assert-Only] The Inspector display name of this node.</summary>
            <remarks>Set using <see cref="M:Animancer.AnimancerNode.SetDebugName(System.Object)"/>.</remarks>
        </member>
        <member name="M:Animancer.AnimancerNode.SetDebugName(System.Object)">
            <summary>[Assert-Conditional] Sets the <see cref="P:Animancer.AnimancerNode.DebugName"/> to display in the Inspector.</summary>
        </member>
        <member name="M:Animancer.AnimancerNode.ToString">
            <summary>The Inspector display name of this node.</summary>
        </member>
        <member name="M:Animancer.AnimancerNode.AppendDescription(System.Text.StringBuilder,System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.AnimancerNode.AppendDetails(System.Text.StringBuilder,System.String)">
            <summary>Called by <see cref="M:Animancer.AnimancerNode.AppendDescription(System.Text.StringBuilder,System.String)"/> to append the details of this node.</summary>
        </member>
        <member name="M:Animancer.AnimancerNode.AppendIKDetails(System.Text.StringBuilder,System.String,Animancer.AnimancerNodeBase)">
            <summary>
            Appends the details of <see cref="P:Animancer.AnimancerNodeBase.ApplyAnimatorIK"/> and
            <see cref="P:Animancer.AnimancerNodeBase.ApplyFootIK"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerNode.GetPath">
            <summary>Returns the hierarchy path of this node through its <see cref="P:Animancer.AnimancerNodeBase.Parent"/>s.</summary>
        </member>
        <member name="M:Animancer.AnimancerNode.AppendPath(System.Text.StringBuilder,Animancer.AnimancerNode)">
            <summary>Appends the hierarchy path of this state through its <see cref="P:Animancer.AnimancerNodeBase.Parent"/>s.</summary>
        </member>
        <member name="M:Animancer.AnimancerNode.AppendPortAndType(System.Text.StringBuilder)">
            <summary>Appends "[Index] -> ToString()".</summary>
        </member>
        <member name="T:Animancer.AnimancerNodeBase">
            <summary>Base class for objects that manage a <see cref="T:UnityEngine.Playables.Playable"/>.</summary>
            <remarks>This is the base class of <see cref="T:Animancer.AnimancerGraph"/> and <see cref="T:Animancer.AnimancerNode"/>.</remarks>
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerNodeBase
        </member>
        <member name="P:Animancer.AnimancerNodeBase.Graph">
            <summary>The <see cref="T:Animancer.AnimancerGraph"/> containing this node.</summary>
        </member>
        <member name="P:Animancer.AnimancerNodeBase.Parent">
            <summary>The object which receives the output of the <see cref="P:Animancer.AnimancerNodeBase.Playable"/>.</summary>
            <remarks>
            This leads from <see cref="T:Animancer.AnimancerState"/> to <see cref="T:Animancer.AnimancerLayer"/> to
            <see cref="T:Animancer.AnimancerGraph"/> to <c>null</c>.
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerNodeBase.Layer">
            <summary>The root <see cref="T:Animancer.AnimancerLayer"/> which this node is connected to (if any).</summary>
        </member>
        <member name="P:Animancer.AnimancerNodeBase.ChildCount">
            <summary>The number of nodes using this as their <see cref="P:Animancer.AnimancerNodeBase.Parent"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerNodeBase.GetChildNode(System.Int32)">
            <summary>Returns the node connected to the specified `index` as a child of this node.</summary>
            <remarks>When overriding, don't call this base method because it throws an exception.</remarks>
            <exception cref="T:System.NotSupportedException">This node can't have children.</exception>
        </member>
        <member name="P:Animancer.AnimancerNodeBase.KeepChildrenConnected">
            <summary>Should child playables stay connected to the graph at all times?</summary>
            <remarks>
            If false, playables will be disconnected from the graph while they are inactive to stop it from
            evaluating them every frame which usually improves performance.
            </remarks>
            <seealso cref="P:Animancer.AnimancerGraph.KeepChildrenConnected"/>
        </member>
        <member name="M:Animancer.AnimancerNodeBase.OnChildIsLoopingChanged(System.Boolean)">
            <summary>Called when a child's <see cref="P:Animancer.AnimancerState.IsLooping"/> value changes.</summary>
        </member>
        <member name="M:Animancer.AnimancerNodeBase.OnIsLoopingChangedRecursive(System.Boolean)">
            <summary>[Internal] Calls <see cref="M:Animancer.AnimancerNodeBase.OnChildIsLoopingChanged(System.Boolean)"/> for each <see cref="P:Animancer.AnimancerNodeBase.Parent"/> recursively.</summary>
        </member>
        <member name="M:Animancer.AnimancerNodeBase.OnRemoveChild(Animancer.AnimancerState)">
            <summary>[Internal] Called when a child's <see cref="P:Animancer.AnimancerNodeBase.Parent"/> is changed from this node.</summary>
            <remarks>When overriding, don't call this base method because it throws an exception.</remarks>
            <exception cref="T:System.NotSupportedException">This node can't have children.</exception>
        </member>
        <member name="F:Animancer.AnimancerNodeBase._Playable">
            <summary>[Internal] The <see cref="P:Animancer.AnimancerNodeBase.Playable"/>.</summary>
        </member>
        <member name="P:Animancer.AnimancerNodeBase.Playable">
            <summary>The internal object this node manages in the <see cref="T:UnityEngine.Playables.PlayableGraph"/>.</summary>
            <remarks>
            Must be set by <see cref="M:Animancer.AnimancerNode.CreatePlayable"/>. Failure to do so will throw the following
            exception throughout the system when using this node: "<see cref="T:System.ArgumentException"/>: The playable passed
            as an argument is invalid. To create a valid playable, please use the appropriate Create method".
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerNodeBase.BaseWeight">
            <summary>The current blend weight of this node which determines how much it affects the final output.</summary>
        </member>
        <member name="P:Animancer.AnimancerNodeBase.Speed">
             <summary>[Pro-Only] How fast the <see cref="P:Animancer.AnimancerState.Time"/> is advancing every frame (default 1).</summary>
             
             <remarks>
             A negative value will play the animation backwards.
             <para></para>
             To pause an animation, consider setting <see cref="P:Animancer.AnimancerState.IsPlaying"/> to false instead of setting
             this value to 0.
             <para></para>
             <em>Animancer Lite does not allow this value to be changed in runtime builds.</em>
             <para></para>
             <strong>Example:</strong><code>
             void SpeedExample(AnimancerComponent animancer, AnimationClip clip)
             {
                 var state = animancer.Play(clip);
            
                 state.Speed = 1;// Normal speed.
                 state.Speed = 2;// Double speed.
                 state.Speed = 0.5f;// Half speed.
                 state.Speed = -1;// Normal speed playing backwards.
                 state.NormalizedTime = 1;// Start at the end to play backwards from there.
             }
             </code></remarks>
             
             <exception cref="T:System.ArgumentOutOfRangeException">The value is not finite.</exception>
        </member>
        <member name="P:Animancer.AnimancerNodeBase.EffectiveSpeed">
            <summary>
            The <see cref="P:Animancer.AnimancerNodeBase.Speed"/> of this node multiplied by the <see cref="P:Animancer.AnimancerNodeBase.Speed"/> of each of its parents to
            determine the actual speed it's playing at.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerNodeBase.ParentEffectiveSpeed">
            <summary>
            The multiplied <see cref="P:Animancer.AnimancerNodeBase.Speed"/> of each of the <see cref="P:Animancer.AnimancerNodeBase.Parent"/> down the hierarchy,
            excluding the root <see cref="P:Animancer.AnimancerNodeBase.Speed"/>.
            </summary>
        </member>
        <member name="P:Animancer.AnimancerNodeBase.ApplyAnimatorIK">
            <summary>
            Should Unity call <c>OnAnimatorIK</c> on the animated object while this object and its children have any
            <see cref="P:Animancer.AnimancerNode.Weight"/>?
            </summary>
            <remarks>
            This is equivalent to the "IK Pass" toggle in Animator Controller layers, except that due to limitations in
            the Playables API the <c>layerIndex</c> will always be zero.
            <para></para>
            This value starts false by default, but can be automatically changed by
            <see cref="M:Animancer.AnimancerNode.CopyIKFlags(Animancer.AnimancerNodeBase)"/> when the <see cref="P:Animancer.AnimancerNodeBase.Parent"/> is set.
            <para></para>
            IK only takes effect while at least one <see cref="T:Animancer.ClipState"/> has a <see cref="P:Animancer.AnimancerNode.Weight"/>
            above zero. Other node types either store the value to apply to their children or don't support IK.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/ik#ik-pass">
            IK Pass</see>
            </remarks>
        </member>
        <member name="P:Animancer.AnimancerNodeBase.ApplyFootIK">
            <summary>Should this object and its children apply IK to the character's feet?</summary>
            <remarks>
            This is equivalent to the "Foot IK" toggle in Animator Controller states.
            <para></para>
            This value starts true by default for <see cref="T:Animancer.ClipState"/>s (false for others), but can be automatically
            changed by <see cref="M:Animancer.AnimancerNode.CopyIKFlags(Animancer.AnimancerNodeBase)"/> when the <see cref="P:Animancer.AnimancerNodeBase.Parent"/> is set.
            <para></para>
            IK only takes effect while at least one <see cref="T:Animancer.ClipState"/> has a <see cref="P:Animancer.AnimancerNode.Weight"/>
            above zero. Other node types either store the value to apply to their children or don't support IK.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/ik#foot-ik">
            Foot IK</see>
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerNodeBase.ApplyChildActive(Animancer.AnimancerState,System.Boolean)">
            <summary>[Internal] Applies a change to a child's <see cref="P:Animancer.AnimancerState.IsActive"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerNodeBase.MarkAsUsed(Animancer.AnimancerNodeBase)">
            <summary>[Assert-Conditional] Prevents the `node` from causing <see cref="F:Animancer.OptionalWarning.UnusedNode"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerNodeBase.AddContextMenuIK(UnityEditor.GenericMenu,Animancer.AnimancerNodeBase)">
            <summary>[Editor-Only]
            Adds functions to show and set <see cref="P:Animancer.AnimancerNodeBase.ApplyAnimatorIK"/> and
            <see cref="P:Animancer.AnimancerNodeBase.ApplyFootIK"/>.
            </summary>
        </member>
        <member name="T:Animancer.ClipState">
            <summary>An <see cref="T:Animancer.AnimancerState"/> which plays an <see cref="T:UnityEngine.AnimationClip"/>.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/playing/states">
            States</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/ClipState
            
        </member>
        <member name="P:Animancer.ClipState.Clip">
            <summary>The <see cref="T:UnityEngine.AnimationClip"/> which this state plays.</summary>
        </member>
        <member name="P:Animancer.ClipState.MainObject">
            <summary>The <see cref="T:UnityEngine.AnimationClip"/> which this state plays.</summary>
        </member>
        <member name="P:Animancer.ClipState.MainObjectType">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.ClipState.Length">
            <summary>The <see cref="P:UnityEngine.AnimationClip.length"/>.</summary>
        </member>
        <member name="P:Animancer.ClipState.IsLooping">
            <summary>The <see cref="P:UnityEngine.Motion.isLooping"/>.</summary>
        </member>
        <member name="M:Animancer.ClipState.GetEventDispatchInfo(System.Single@,System.Single@,System.Boolean@)">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.ClipState.AverageVelocity">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.ClipState.ApplyAnimatorIK">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.ClipState.ApplyFootIK">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ClipState.#ctor(UnityEngine.AnimationClip)">
            <summary>Creates a new <see cref="T:Animancer.ClipState"/> and sets its <see cref="P:Animancer.ClipState.Clip"/>.</summary>
            <exception cref="T:System.ArgumentNullException">The `clip` is null.</exception>
        </member>
        <member name="M:Animancer.ClipState.CreatePlayable(UnityEngine.Playables.Playable@)">
            <summary>Creates and assigns the <see cref="T:UnityEngine.Animations.AnimationClipPlayable"/> managed by this node.</summary>
        </member>
        <member name="M:Animancer.ClipState.RecreatePlayable">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ClipState.Destroy">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ClipState.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.PlayableAssetState">
            <summary>[Pro-Only] An <see cref="T:Animancer.AnimancerState"/> which plays a <see cref="T:UnityEngine.Playables.PlayableAsset"/>.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/timeline">
            Timeline</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/PlayableAssetState
        </member>
        <member name="F:Animancer.PlayableAssetState._Asset">
            <summary>The <see cref="T:UnityEngine.Playables.PlayableAsset"/> which this state plays.</summary>
        </member>
        <member name="P:Animancer.PlayableAssetState.Asset">
            <summary>The <see cref="T:UnityEngine.Playables.PlayableAsset"/> which this state plays.</summary>
        </member>
        <member name="P:Animancer.PlayableAssetState.MainObject">
            <summary>The <see cref="T:UnityEngine.Playables.PlayableAsset"/> which this state plays.</summary>
        </member>
        <member name="P:Animancer.PlayableAssetState.MainObjectType">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.PlayableAssetState.Length">
            <summary>The <see cref="P:UnityEngine.Playables.PlayableAsset.duration"/>.</summary>
        </member>
        <member name="M:Animancer.PlayableAssetState.GetEventDispatchInfo(System.Single@,System.Single@,System.Boolean@)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.PlayableAssetState.OnSetIsPlaying">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.PlayableAssetState.CopyIKFlags(Animancer.AnimancerNodeBase)">
            <summary>IK cannot be dynamically enabled on a <see cref="T:Animancer.PlayableAssetState"/>.</summary>
        </member>
        <member name="P:Animancer.PlayableAssetState.ApplyAnimatorIK">
            <summary>IK cannot be dynamically enabled on a <see cref="T:Animancer.PlayableAssetState"/>.</summary>
        </member>
        <member name="P:Animancer.PlayableAssetState.ApplyFootIK">
            <summary>IK cannot be dynamically enabled on a <see cref="T:Animancer.PlayableAssetState"/>.</summary>
        </member>
        <member name="M:Animancer.PlayableAssetState.#ctor(UnityEngine.Playables.PlayableAsset)">
            <summary>Creates a new <see cref="T:Animancer.PlayableAssetState"/> to play the `asset`.</summary>
            <exception cref="T:System.ArgumentNullException">The `asset` is null.</exception>
        </member>
        <member name="M:Animancer.PlayableAssetState.CreatePlayable(UnityEngine.Playables.Playable@)">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.PlayableAssetState.Bindings">
            <summary>The objects controlled by each track in the asset.</summary>
        </member>
        <member name="M:Animancer.PlayableAssetState.SetBindings(UnityEngine.Object[])">
            <summary>Sets the <see cref="P:Animancer.PlayableAssetState.Bindings"/>.</summary>
        </member>
        <member name="M:Animancer.PlayableAssetState.GetBindingDetails(UnityEngine.Playables.PlayableBinding,System.String@,System.Type@,System.Boolean@)">
            <summary>Gathers details about the `binding`.</summary>
        </member>
        <member name="M:Animancer.PlayableAssetState.Destroy">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.PlayableAssetState.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.PlayableAssetState.AppendDetails(System.Text.StringBuilder,System.String)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.UpdatableListPlayable">
            <summary>
            A <see cref="T:UnityEngine.Playables.PlayableBehaviour"/> which executes <see cref="M:Animancer.IUpdatable.Update"/>
            on each item in an <see cref="T:Animancer.IUpdatable.List"/> every frame.
            </summary>
        </member>
        <member name="F:Animancer.UpdatableListPlayable.Template">
            <summary>
            Since <see cref="M:UnityEngine.Playables.ScriptPlayable`1.Create(UnityEngine.Playables.PlayableGraph,System.Int32)"/> needs to clone an existing instance,
            we keep a static template to avoid allocating an extra garbage one every time.
            This also means the fields can't be readonly because field initializers don't run on the clone.
            </summary>
        </member>
        <member name="F:Animancer.UpdatableListPlayable._Graph">
            <summary>The <see cref="T:Animancer.AnimancerGraph"/> this behaviour is connected to.</summary>
        </member>
        <member name="F:Animancer.UpdatableListPlayable._Updatables">
            <summary>Objects to be updated before time advances.</summary>
        </member>
        <member name="M:Animancer.UpdatableListPlayable.Create(Animancer.AnimancerGraph,System.Int32,Animancer.IUpdatable.List)">
            <summary>Creates a new <see cref="T:Animancer.UpdatableListPlayable"/>.</summary>
        </member>
        <member name="M:Animancer.UpdatableListPlayable.PrepareFrame(UnityEngine.Playables.Playable,UnityEngine.Playables.FrameData)">
            <summary>[Internal] Calls <see cref="M:Animancer.IUpdatable.Update"/> on everything added to this list.</summary>
            <remarks>
            Called by the <see cref="T:UnityEngine.Playables.PlayableGraph"/> after the rest of the <see cref="T:UnityEngine.Playables.Playable"/>s are evaluated.
            </remarks>
        </member>
        <member name="T:Animancer.WeightedMaskLayerList">
            <summary>
            A replacement for the default <see cref="T:UnityEngine.Animations.AnimationLayerMixerPlayable"/> which uses custom
            <see cref="P:Animancer.WeightedMaskLayerList.BoneWeights"/> for each individual bone instead of just using an <see cref="T:UnityEngine.AvatarMask"/>
            to include or exclude them entirely.
            </summary>
            <remarks>
            This system currently only supports 2 layers (Base + 1). Adding support for more would require additional
            <see cref="P:Animancer.WeightedMaskLayerList.BoneWeights"/> for each additional layer and modifications to <see cref="T:Animancer.WeightedMaskMixerJob"/>
            to iterate through each layer instead of just using the first two.
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/WeightedMaskLayerList
        </member>
        <member name="F:Animancer.WeightedMaskLayerList.Bones">
            <summary>The objects being masked.</summary>
        </member>
        <member name="F:Animancer.WeightedMaskLayerList._Job">
            <summary>The job data.</summary>
        </member>
        <member name="P:Animancer.WeightedMaskLayerList.BoneWeights">
            <summary>The blend weight of each of the <see cref="F:Animancer.WeightedMaskLayerList.Bones"/>.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayerList.IndexOf(UnityEngine.Transform)">
            <summary>Returns the index of the value corresponding to the 'bone' in the <see cref="P:Animancer.WeightedMaskLayerList.BoneWeights"/> array.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayerList.Create(UnityEngine.Animator)">
            <summary>Creates a new <see cref="T:Animancer.AnimancerGraph"/> and <see cref="T:Animancer.WeightedMaskLayerList"/>.</summary>
            <remarks>
            This method can't be a constructor because it would need to
            assign itself to the graph before being fully constructed.
            </remarks>
        </member>
        <member name="M:Animancer.WeightedMaskLayerList.#ctor(Animancer.AnimancerGraph,UnityEngine.Animator)">
            <summary>Creates a new <see cref="T:Animancer.WeightedMaskLayerList"/>.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayerList.System#IDisposable#Dispose">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.WeightedMaskLayersInternal">
            <summary>
            Replaces the default <see cref="T:Animancer.AnimancerLayerMixerList"/>
            with a <see cref="T:Animancer.WeightedMaskLayerList"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer/WeightedMaskLayers
        </member>
        <member name="P:Animancer.WeightedMaskLayersInternal.Definition">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>]
            The definition of transforms to control and weights to apply to them.
            </summary>
        </member>
        <member name="P:Animancer.WeightedMaskLayersInternal.Layers">
            <summary>The layer list created at runtime and assigned to <see cref="P:Animancer.AnimancerGraph.Layers"/>.</summary>
        </member>
        <member name="P:Animancer.WeightedMaskLayersInternal.Indices">
            <summary>The index of each of the <see cref="P:Animancer.WeightedMaskLayersDefinition.Transforms"/>.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersInternal.SetWeights(System.Int32)">
            <summary>Applies the weights of the specified group.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersInternal.FadeWeights(System.Int32,System.Single,System.Func{System.Single,System.Single})">
            <summary>Fades the weights towards the specified group.</summary>
        </member>
        <member name="T:Animancer.WeightedMaskLayersInternal.Fade">
            <summary>An <see cref="T:Animancer.IUpdatable"/> which fades <see cref="T:Animancer.WeightedMaskLayersInternal"/> over time.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/Fade
        </member>
        <member name="P:Animancer.WeightedMaskLayersInternal.Fade.ElapsedTime">
            <summary>The amount of time that has passed since the start of this fade (in seconds).</summary>
        </member>
        <member name="P:Animancer.WeightedMaskLayersInternal.Fade.Duration">
            <summary>The total amount of time this fade will take (in seconds).</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersInternal.Fade.Start(Animancer.WeightedMaskLayersInternal,System.Int32,System.Single,System.Func{System.Single,System.Single})">
            <summary>Initializes this fade and registers it to receive updates.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersInternal.Fade.Update">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.WeightedMaskLayersInternal.Fade.ApplyFade(System.Single)">
            <summary>Recalculates the weights by interpolating based on `t`.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersInternal.Fade.ApplyTargetWeights">
            <summary>Recalculates the target weights.</summary>
        </member>
        <member name="T:Animancer.WeightedMaskLayersDefinition">
            <summary>Serializable data which defines how to control a <see cref="T:Animancer.WeightedMaskLayerList"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/WeightedMaskLayersDefinition
        </member>
        <member name="F:Animancer.WeightedMaskLayersDefinition.TransformsField">
            <summary>The name of the serialized backing field of <see cref="P:Animancer.WeightedMaskLayersDefinition.Transforms"/>.</summary>
        </member>
        <member name="P:Animancer.WeightedMaskLayersDefinition.Transforms">
            <summary><see cref="T:UnityEngine.Transform"/>s being controlled by this definition.</summary>
        </member>
        <member name="F:Animancer.WeightedMaskLayersDefinition.WeightsField">
            <summary>The name of the serialized backing field of <see cref="P:Animancer.WeightedMaskLayersDefinition.Weights"/>.</summary>
        </member>
        <member name="P:Animancer.WeightedMaskLayersDefinition.Weights">
            <summary>Groups of weights which will be applied to the <see cref="P:Animancer.WeightedMaskLayersDefinition.Transforms"/>.</summary>
            <remarks>
            This is a flattened 2D array containing groups of target weights corresponding to the transforms.
            With n transforms, indices 0 to n-1 are Group 0, n to n*2-1 are Group 1, etc.
            </remarks>
        </member>
        <member name="P:Animancer.WeightedMaskLayersDefinition.GroupCount">
            <summary>The number of weight groups in this definition.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.AssertGroupIndex(System.Int32)">
            <summary>[Assert-Conditional] Asserts that the `groupIndex` is valid.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.CalculateIndices(Animancer.WeightedMaskLayerList)">
            <summary>Calculates the index of each of the <see cref="P:Animancer.WeightedMaskLayersDefinition.Transforms"/>.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.AddTransform(UnityEngine.Transform)">
            <summary>
            Adds the `transform` at the specified `index`
            along with any associated <see cref="F:Animancer.WeightedMaskLayersDefinition._Weights"/>.
            </summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.RemoveTransform(System.Int32)">
            <summary>
            Removes the `index` from the <see cref="F:Animancer.WeightedMaskLayersDefinition._Transforms"/>
            along with any associated <see cref="F:Animancer.WeightedMaskLayersDefinition._Weights"/>.
            </summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.IndexOfGroup(System.Int32)">
            <summary>Calculates the index in the <see cref="P:Animancer.WeightedMaskLayersDefinition.Weights"/> corresponding to the specified values.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.IndexOf(System.Int32,System.Int32)">
            <summary>Calculates the index in the <see cref="P:Animancer.WeightedMaskLayersDefinition.Weights"/> corresponding to the specified values.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.GetWeight(System.Int32,System.Int32)">
            <summary>Gets the specified weight.</summary>
            <remarks>Returns <see cref="F:System.Single.NaN"/> if the indices are outside the <see cref="P:Animancer.WeightedMaskLayersDefinition.Weights"/>.</remarks>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.SetWeight(System.Int32,System.Int32,System.Single)">
            <summary>Sets the specified weight.</summary>
            <remarks>Returns false if the indices are outside the <see cref="P:Animancer.WeightedMaskLayersDefinition.Weights"/>.</remarks>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.CopyFrom(Animancer.WeightedMaskLayersDefinition,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.WeightedMaskLayersDefinition.IsValid">
            <summary>Does this definition contain valid data?</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.OnValidate">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.ValidateArraySizes">
            <summary>Ensures that all the arrays have valid sizes.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.RemoveMissingAndDuplicate">
            <summary>Removes any missing or identical <see cref="F:Animancer.WeightedMaskLayersDefinition._Transforms"/>.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.UnityEngine#ISerializationCallbackReceiver#OnBeforeSerialize">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.UnityEngine#ISerializationCallbackReceiver#OnAfterDeserialize">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.ToString">
            <summary>Returns a summary of this definition.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.Equals(System.Object)">
            <summary>Are all fields in this object equal to the equivalent in `obj`?</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.Equals(Animancer.WeightedMaskLayersDefinition)">
            <summary>Are all fields in this object equal to the equivalent fields in `other`?</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.op_Equality(Animancer.WeightedMaskLayersDefinition,Animancer.WeightedMaskLayersDefinition)">
            <summary>Are all fields in `a` equal to the equivalent fields in `b`?</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.op_Inequality(Animancer.WeightedMaskLayersDefinition,Animancer.WeightedMaskLayersDefinition)">
            <summary>Are any fields in `a` not equal to the equivalent fields in `b`?</summary>
        </member>
        <member name="M:Animancer.WeightedMaskLayersDefinition.GetHashCode">
            <summary>Returns a hash code based on the values of this object's fields.</summary>
        </member>
        <member name="T:Animancer.WeightedMaskMixerJob">
            <summary>
            An <see cref="T:UnityEngine.Animations.IAnimationJob"/> which mixes its inputs based on individual <see cref="F:Animancer.WeightedMaskMixerJob.boneWeights"/>.
            </summary>
        </member>
        <member name="F:Animancer.WeightedMaskMixerJob.boneTransforms">
            <summary>The handles for each bone being mixed.</summary>
            <remarks>All animated bones must be included, even if their individual weight isn't modified.</remarks>
        </member>
        <member name="F:Animancer.WeightedMaskMixerJob.boneWeights">
            <summary>The blend weight of each bone. This array corresponds to the <see cref="F:Animancer.WeightedMaskMixerJob.boneTransforms"/>.</summary>
        </member>
        <member name="M:Animancer.WeightedMaskMixerJob.UnityEngine#Animations#IAnimationJob#ProcessRootMotion(UnityEngine.Animations.AnimationStream)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.WeightedMaskMixerJob.UnityEngine#Animations#IAnimationJob#ProcessAnimation(UnityEngine.Animations.AnimationStream)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.FadeMode">
            <summary>Determines how <see cref="M:Animancer.AnimancerLayer.Play(Animancer.AnimancerState,System.Single,Animancer.FadeMode)"/> works.</summary>
            
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/blending/fading/modes">
            Fade Modes</see>
            <para></para>
            <strong>Sample:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/samples/basics/transitions">
            Transitions</see>
            </remarks>
            
            https://kybernetik.com.au/animancer/api/Animancer/FadeMode
            
        </member>
        <member name="F:Animancer.FadeMode.FixedSpeed">
             <summary>
             Calculate the fade speed to bring the <see cref="P:Animancer.AnimancerNode.Weight"/>
             from 0 to 1 over the specified fade duration (in seconds),
             regardless of the actual starting weight.
             </summary>
            
             <remarks>
             <strong>Example:</strong>
             A fade duration of 0.5 would make the fade last for 0.5 seconds, regardless of how long the animation is.
             <para></para>
             This is generally the same as <see cref="F:Animancer.FadeMode.FixedDuration"/> but differs when starting the fade from a
             non-zero <see cref="P:Animancer.AnimancerNode.Weight"/>, for example:
             <list type="bullet">
             <item>Fade Duration: 0.25</item>
             <item>To fade from 0 to 1 with either mode would get a speed of 4 and take 0.25 seconds</item>
             <item>To fade from 0.5 to 1 with <see cref="F:Animancer.FadeMode.FixedDuration"/> would get a speed of 2 and take 0.25 seconds.
             It has half the distance to cover so it goes half as fast to maintain the expected duration.</item>
             <item>To fade from 0.5 to 1 with <see cref="F:Animancer.FadeMode.FixedSpeed"/> would get a speed of 4 and take 0.125 seconds.
             It gets the same speed regardless of the distance to cover, so with less distance it completes faster.</item>
             </list>
             </remarks>
            
             <exception cref="T:System.InvalidOperationException">The <see cref="P:Animancer.AnimancerState.Clip"/> is null.</exception>
            
             <exception cref="T:System.ArgumentOutOfRangeException">
             More states have been created for the <see cref="P:Animancer.AnimancerState.Clip"/> than the
             <see cref="P:Animancer.AnimancerLayer.MaxCloneCount"/> allows.
             </exception>
        </member>
        <member name="F:Animancer.FadeMode.FixedDuration">
             <summary>
             Calculate the fade speed to bring the <see cref="P:Animancer.AnimancerNode.Weight"/> to the target value over the
             specified fade duration (in seconds).
             </summary>
            
             <remarks>
             <strong>Example:</strong>
             A fade duration of 0.5 would make the fade last for 0.5 seconds, regardless of how long the animation is.
             <para></para>
             This is generally the same as <see cref="F:Animancer.FadeMode.FixedSpeed"/>, but differs when starting the fade from a
             non-zero <see cref="P:Animancer.AnimancerNode.Weight"/>:
             <list type="bullet">
             <item>Fade Duration: 0.25</item>
             <item>To fade from 0 to 1 with either mode would get a speed of 4 and take 0.25 seconds</item>
             <item>To fade from 0.5 to 1 with <see cref="F:Animancer.FadeMode.FixedDuration"/> would get a speed of 2 and take 0.25 seconds.
             It has half the distance to cover so it goes half as fast to maintain the expected duration.</item>
             <item>To fade from 0.5 to 1 with <see cref="F:Animancer.FadeMode.FixedSpeed"/> would get a speed of 4 and take 0.125 seconds.
             It gets the same speed regardless of the distance to cover, so with less distance it completes faster.</item>
             </list>
             </remarks>
        </member>
        <member name="F:Animancer.FadeMode.FromStart">
             <summary>
             If the <see cref="P:Animancer.AnimancerNode.Weight"/> is above the <see cref="P:Animancer.AnimancerLayer.WeightlessThreshold"/>,
             this mode will use <see cref="M:Animancer.AnimancerLayer.GetOrCreateWeightlessState(Animancer.AnimancerState)"/> to get a copy of it that is at 0
             weight so it can fade the copy in while the original fades out with all other states. This allows an
             animation to fade into itself.
             </summary>
            
             <remarks>
             This mode can be useful when you want to repeat an action while the previous animation is still fading out.
             For example, if you play an 'Attack' animation, it ends and starts fading back to 'Idle', and while it is
             doing so you want to start another 'Attack' with the same animation. The previous 'Attack' can't simply
             snap back to the start, so you can use this mode to create a second 'Attack' state to fade in while the old
             one fades out.
             <para></para>
             Using this mode repeatedly on subsequent frames will probably have undesirable effects because it will
             create a new state each time. In such a situation you most likely want <see cref="F:Animancer.FadeMode.FixedSpeed"/> instead.
             <para></para>
             This mode only works for <see cref="T:Animancer.ClipState"/>s.
             <para></para>
             The <see href="https://kybernetik.com.au/animancer/docs/manual/blending/fading/modes">Fade Modes</see> page
             explains this mode in more detail.
             </remarks>
        </member>
        <member name="F:Animancer.FadeMode.NormalizedSpeed">
            <summary>
            Like <see cref="F:Animancer.FadeMode.FixedSpeed"/>, except that the fade duration is multiplied by the animation length.
            </summary>
        </member>
        <member name="F:Animancer.FadeMode.NormalizedDuration">
            <summary>
            Like <see cref="F:Animancer.FadeMode.FixedDuration"/>, except that the fade duration is multiplied by the animation length.
            </summary>
        </member>
        <member name="F:Animancer.FadeMode.NormalizedFromStart">
            <summary>
            Like <see cref="F:Animancer.FadeMode.FromStart"/>, except that the fade duration is multiplied by the animation length.
            </summary>
        </member>
        <member name="T:Animancer.FastEnumerator`1">
            <summary>
            An <see cref="T:System.Collections.Generic.IEnumerator`1"/> for any <see cref="T:System.Collections.Generic.IList`1"/>
            which doesn't bother checking if the target has been modified.
            This gives it good performance but also makes it slightly less safe to use.
            </summary>
            <remarks>
            This struct also implements <see cref="T:System.Collections.Generic.IEnumerable`1"/>
            so it can be used in <c>foreach</c> statements and <see cref="T:System.Collections.Generic.IList`1"/>
            to allow the target collection to be modified without breaking the enumerator
            (though doing so is still somewhat dangerous so use with care).
            <para></para>
            <strong>Example:</strong><code>
            var numbers = new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, };
            var count = 4;
            foreach (var number in new FastEnumerator&lt;int&gt;(numbers, count))
            {
                Debug.Log(number);
            }
            
            // Log Output:
            // 9
            // 8
            // 7
            // 6
            </code></remarks>
        </member>
        <member name="F:Animancer.FastEnumerator`1.List">
            <summary>The target <see cref="T:System.Collections.Generic.IList`1"/>.</summary>
        </member>
        <member name="P:Animancer.FastEnumerator`1.Count">
            <summary>[<see cref="T:System.Collections.Generic.ICollection`1"/>]
            The number of items in the <see cref="F:Animancer.FastEnumerator`1.List"/> (which can be less than the
            <see cref="P:System.Collections.Generic.ICollection`1.Count"/> of the <see cref="F:Animancer.FastEnumerator`1.List"/>).
            </summary>
        </member>
        <member name="P:Animancer.FastEnumerator`1.Index">
            <summary>The position of the <see cref="P:Animancer.FastEnumerator`1.Current"/> item in the <see cref="F:Animancer.FastEnumerator`1.List"/>.</summary>
        </member>
        <member name="P:Animancer.FastEnumerator`1.Current">
            <summary>The item at the current <see cref="P:Animancer.FastEnumerator`1.Index"/> in the <see cref="F:Animancer.FastEnumerator`1.List"/>.</summary>
        </member>
        <member name="P:Animancer.FastEnumerator`1.System#Collections#IEnumerator#Current">
            <summary>The item at the current <see cref="P:Animancer.FastEnumerator`1.Index"/> in the <see cref="F:Animancer.FastEnumerator`1.List"/>.</summary>
        </member>
        <member name="M:Animancer.FastEnumerator`1.#ctor(System.Collections.Generic.IList{`0})">
            <summary>Creates a new <see cref="T:Animancer.FastEnumerator`1"/>.</summary>
            <exception cref="T:System.NullReferenceException">
            The `list` is null. Use the <c>default</c> <see cref="T:Animancer.FastEnumerator`1"/> instead.
            </exception>
        </member>
        <member name="M:Animancer.FastEnumerator`1.#ctor(System.Collections.Generic.IList{`0},System.Int32)">
            <summary>Creates a new <see cref="T:Animancer.FastEnumerator`1"/>.</summary>
        </member>
        <member name="M:Animancer.FastEnumerator`1.MoveNext">
            <summary>Moves to the next item in the <see cref="F:Animancer.FastEnumerator`1.List"/> and returns true if there is one.</summary>
            <remarks>At the end of the <see cref="F:Animancer.FastEnumerator`1.List"/> the <see cref="P:Animancer.FastEnumerator`1.Index"/> is set to <see cref="F:System.Int32.MinValue"/>.</remarks>
        </member>
        <member name="M:Animancer.FastEnumerator`1.MovePrevious">
            <summary>Moves to the previous item in the <see cref="F:Animancer.FastEnumerator`1.List"/> and returns true if there is one.</summary>
            <remarks>At the end of the <see cref="F:Animancer.FastEnumerator`1.List"/> the <see cref="P:Animancer.FastEnumerator`1.Index"/> is set to <c>-1</c>.</remarks>
        </member>
        <member name="M:Animancer.FastEnumerator`1.Reset">
            <summary>[<see cref="T:System.Collections.IEnumerator"/>] Reverts this enumerator to the start of the <see cref="F:Animancer.FastEnumerator`1.List"/>.</summary>
        </member>
        <member name="M:Animancer.FastEnumerator`1.System#IDisposable#Dispose">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.FastEnumerator`1.GetEnumerator">
            <summary>Returns <c>this</c>.</summary>
        </member>
        <member name="M:Animancer.FastEnumerator`1.System#Collections#Generic#IEnumerable{T}#GetEnumerator">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.FastEnumerator`1.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.FastEnumerator`1.IndexOf(`0)">
            <summary>[<see cref="T:System.Collections.Generic.IList`1"/>] Returns the first index of the `item` in the <see cref="F:Animancer.FastEnumerator`1.List"/>.</summary>
        </member>
        <member name="P:Animancer.FastEnumerator`1.Item(System.Int32)">
            <summary>[<see cref="T:System.Collections.Generic.IList`1"/>] The item at the specified `index` in the <see cref="F:Animancer.FastEnumerator`1.List"/>.</summary>
        </member>
        <member name="M:Animancer.FastEnumerator`1.Contains(`0)">
            <summary>[<see cref="T:System.Collections.Generic.ICollection`1"/>] Does the <see cref="F:Animancer.FastEnumerator`1.List"/> contain the `item`?</summary>
        </member>
        <member name="M:Animancer.FastEnumerator`1.CopyTo(`0[],System.Int32)">
            <summary>[<see cref="T:System.Collections.Generic.ICollection`1"/>] Copies the contents of the <see cref="F:Animancer.FastEnumerator`1.List"/> into the `array`.</summary>
        </member>
        <member name="M:Animancer.FastEnumerator`1.AssertIndex(System.Int32)">
            <summary>[Assert-Only] Throws an exception unless 0 &lt;= `index` &lt; <see cref="P:Animancer.FastEnumerator`1.Count"/>.</summary>
            <exception cref="T:System.ArgumentOutOfRangeException"/>
        </member>
        <member name="M:Animancer.FastEnumerator`1.AssertCount(System.Int32)">
            <summary>[Assert-Only] Throws an exception unless 0 &lt; `count` &lt;= <see cref="P:System.Collections.Generic.ICollection`1.Count"/>.</summary>
            <exception cref="T:System.ArgumentOutOfRangeException"/>
        </member>
        <member name="T:Animancer.IReadOnlyIndexedList`1">
            <summary>
            An <see cref="T:System.Collections.Generic.IReadOnlyList`1"/> which can remove items in <c>O(1)</c> time without searching and an inbuilt
            enumerator which supports modifications at any time (including during enumeration).
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer/IReadOnlyIndexedList_1
        </member>
        <member name="P:Animancer.IReadOnlyIndexedList`1.Capacity">
            <summary>The number of items this list can contain before resizing is required.</summary>
        </member>
        <member name="M:Animancer.IReadOnlyIndexedList`1.Contains(`0)">
            <summary>Is the `item` currently in this list?</summary>
        </member>
        <member name="M:Animancer.IReadOnlyIndexedList`1.Contains(`0,System.Int32)">
            <summary>Is the `item` currently in this list at the specified `index`?</summary>
        </member>
        <member name="M:Animancer.IReadOnlyIndexedList`1.CopyTo(`0[],System.Int32)">
            <summary>Copies all the items from this list into the `array`, starting at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.IReadOnlyIndexedList`1.IndexOf(`0)">
            <summary>Returns the index of the `item` in this list or <c>-1</c> if it's not in this list.</summary>
        </member>
        <member name="M:Animancer.IReadOnlyIndexedList`1.DeepToString(System.String)">
            <summary>Returns a string describing this list and its contents.</summary>
        </member>
        <member name="T:Animancer.IIndexer`1">
            <summary>An object which accesses the index of the items in an <see cref="T:Animancer.IndexedList`2"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/IIndexer_1
        </member>
        <member name="M:Animancer.IIndexer`1.GetIndex(`0)">
            <summary>Returns the index of the `item`.</summary>
            <remarks>
            The index used by this method should be initialized at -1 and should not be modified by anything outside
            this indexer.
            </remarks>
        </member>
        <member name="M:Animancer.IIndexer`1.SetIndex(`0,System.Int32)">
            <summary>Sets the index of the `item`.</summary>
            <remarks>
            The index used by this method should be initialized at -1 and should not be modified by anything outside
            this indexer.
            </remarks>
        </member>
        <member name="M:Animancer.IIndexer`1.ClearIndex(`0)">
            <summary>Resets the index of the `item` to -1.</summary>
            <remarks>
            The index used by this method should be initialized at -1 and should not be modified by anything outside
            this indexer.
            </remarks>
        </member>
        <member name="T:Animancer.IndexedList`2">
            <summary>
            A <see cref="T:System.Collections.Generic.List`1"/> which can remove items in <c>O(1)</c> time without searching and an inbuilt
            enumerator which supports modifications at any time (including during enumeration).
            </summary>
            <remarks>
            This implementation has several restrictions compared to a regular <see cref="T:System.Collections.Generic.List`1"/>:
            <list type="bullet">
            <item>Items cannot be <c>null</c>.</item>
            <item>
            Items can only be in one <see cref="T:Animancer.IndexedList`2"/>
            at a time and cannot appear multiple times in it.
            </item>
            </list>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/IndexedList_2
        </member>
        <member name="F:Animancer.IndexedList`2.NotInList">
            <summary>The index which indicates that an item isn't in a list.</summary>
        </member>
        <member name="F:Animancer.IndexedList`2.DefaultCapacity">
            <summary>The default <see cref="P:Animancer.IndexedList`2.Capacity"/> which lists will expand to when their first item is added.</summary>
        </member>
        <member name="F:Animancer.IndexedList`2.Indexer">
            <summary>The <see cref="T:Animancer.IIndexer`1"/> used to access the details of items.</summary>
        </member>
        <member name="M:Animancer.IndexedList`2.#ctor(`1)">
            <summary>Creates a new <see cref="T:Animancer.IndexedList`2"/> using the default <see cref="T:System.Collections.Generic.List`1"/> constructor.</summary>
        </member>
        <member name="M:Animancer.IndexedList`2.#ctor(System.Int32,`1)">
            <summary>Creates a new <see cref="T:Animancer.IndexedList`2"/> with the specified initial `capacity`.</summary>
        </member>
        <member name="P:Animancer.IndexedList`2.Count">
            <summary>The number of items currently in the list.</summary>
        </member>
        <member name="P:Animancer.IndexedList`2.Capacity">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.IndexedList`2.Item(System.Int32)">
            <summary>The item at the specified `index`.</summary>
            <remarks>This indexer has <c>O(1)</c> complexity</remarks>
            <exception cref="T:System.ArgumentException">The `value` was already in an <see cref="T:Animancer.IndexedList`2"/> (setter only).</exception>
        </member>
        <member name="M:Animancer.IndexedList`2.Contains(`0)">
            <summary>Is the `item` currently in this list?</summary>
            <remarks>This method has <c>O(1)</c> complexity.</remarks>
        </member>
        <member name="M:Animancer.IndexedList`2.Contains(`0,System.Int32)">
            <summary>Is the `item` currently in this list at the specified `index`?</summary>
            <remarks>This method has <c>O(1)</c> complexity.</remarks>
        </member>
        <member name="M:Animancer.IndexedList`2.IndexOf(`0)">
            <summary>Returns the index of the `item` in this list or <c>-1</c> if it's not in this list.</summary>
            <remarks>This method has <c>O(1)</c> complexity.</remarks>
        </member>
        <member name="M:Animancer.IndexedList`2.CopyTo(`0[],System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.IndexedList`2.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
            <summary>Copies all the items from this list into the `array`, starting at the specified `index`.</summary>
        </member>
        <member name="P:Animancer.IndexedList`2.System#Collections#Generic#ICollection{TItem}#IsReadOnly">
            <summary>Returns false.</summary>
        </member>
        <member name="P:Animancer.IndexedList`2.System#Collections#ICollection#IsSynchronized">
            <summary>Is this list thread safe?</summary>
        </member>
        <member name="P:Animancer.IndexedList`2.System#Collections#ICollection#SyncRoot">
            <summary>An object that can be used to synchronize access to this <see cref="T:System.Collections.ICollection"/>.</summary>
        </member>
        <member name="M:Animancer.IndexedList`2.System#Collections#Generic#ICollection{TItem}#Add(`0)">
            <summary>Adds the `item` to the end of this list.</summary>
            <remarks>
            This method has <c>O(1)</c> complexity if the <see cref="P:Animancer.IndexedList`2.Capacity"/> doesn't need to be increased.
            Otherwise, it's <c>O(N)</c> since all existing items need to be copied into a new array.
            </remarks>
            <exception cref="T:System.ArgumentException">
            The `item` was already in an <see cref="T:Animancer.IndexedList`2"/>.
            </exception>
        </member>
        <member name="M:Animancer.IndexedList`2.Add(`0)">
            <summary>Adds the `item` to the end of this list if it wasn't already in it and returns true if successful.</summary>
            <remarks>
            This method has <c>O(1)</c> complexity if the <see cref="P:Animancer.IndexedList`2.Capacity"/> doesn't need to be increased.
            Otherwise, it's <c>O(N)</c> since all existing items need to be copied into a new array.
            </remarks>
            <exception cref="T:System.ArgumentException">
            The `item` is already in a different list.
            </exception>
            <exception cref="T:System.IndexOutOfRangeException">
            The `item` is already in a different list at an index larger than this list.
            </exception>
        </member>
        <member name="M:Animancer.IndexedList`2.Insert(System.Int32,`0)">
            <summary>Adds the `item` to this list at the specified `index`.</summary>
            <remarks>
            This method has <c>O(1)</c> complexity.
            <para></para>
            This does not maintain the order of items, but is more efficient than <see cref="M:System.Collections.Generic.List`1.Insert(System.Int32,`0)"/>
            because it avoids the need to move every item after the target up one place.
            </remarks>
        </member>
        <member name="M:Animancer.IndexedList`2.RemoveAt(System.Int32)">
            <summary>Removes the item at the specified `index` by swapping the last item in this list into its place.</summary>
            <remarks>
            This method has <c>O(1)</c> complexity.
            <para></para>
            This does not maintain the order of items, but is more efficient than <see cref="M:System.Collections.Generic.List`1.RemoveAt(System.Int32)"/>
            because it avoids the need to move every item after the target down one place.
            </remarks>
        </member>
        <member name="M:Animancer.IndexedList`2.RemoveAt(System.Int32,`0)">
            <summary>Removes the item at the specified `index` by swapping the last item in this list into its place.</summary>
            <remarks>
            This method has <c>O(1)</c> complexity.
            <para></para>
            This does not maintain the order of items, but is more efficient than <see cref="M:System.Collections.Generic.List`1.RemoveAt(System.Int32)"/>
            because it avoids the need to move every item after the target down one place.
            </remarks>
        </member>
        <member name="M:Animancer.IndexedList`2.Remove(`0)">
            <summary>Removes the `item` by swapping the last item in this list into its place.</summary>
            <remarks>
            This method has <c>O(1)</c> complexity.
            <para></para>
            This method does not maintain the order of items, but is more efficient than <see cref="M:Animancer.IndexedList`2.Remove(`0)"/> because
            it avoids the need to move every item after the target down one place.
            </remarks>
        </member>
        <member name="M:Animancer.IndexedList`2.Clear">
            <summary>Removes all items from this list.</summary>
            <remarks>This method has <c>O(N)</c> complexity.</remarks>
        </member>
        <member name="P:Animancer.IndexedList`2.CurrentIndex">
            <summary>
            If something is currently enumerating through this list, this value holds the index it's currently up
            to. Otherwise, this value will be negative.
            </summary>
        </member>
        <member name="P:Animancer.IndexedList`2.Current">
            <summary>The item at the <see cref="P:Animancer.IndexedList`2.CurrentIndex"/>.</summary>
            <exception cref="T:System.IndexOutOfRangeException">
            The <see cref="P:Animancer.IndexedList`2.CurrentIndex"/> is negative so this list isn't currently being enumerated.
            </exception>
        </member>
        <member name="P:Animancer.IndexedList`2.IsEnumerating">
            <summary>
            Has <see cref="M:Animancer.IndexedList`2.BeginEnumeraton"/> been called and <see cref="M:Animancer.IndexedList`2.TryEnumerateNext"/> not yet been called
            enough times to go through all items?
            </summary>
        </member>
        <member name="M:Animancer.IndexedList`2.BeginEnumeraton">
            <summary>
            Sets the <see cref="P:Animancer.IndexedList`2.CurrentIndex"/> to the end of this list so that <see cref="M:Animancer.IndexedList`2.TryEnumerateNext"/> can
            iterate backwards to the start.
            </summary>
            <exception cref="T:System.InvalidOperationException">
            This method was called multiple times without <see cref="M:Animancer.IndexedList`2.TryEnumerateNext"/> going over all items. This
            list can only be enumerated by one thing at a time and it must fully complete before the next can begin.
            This limitation is necessary to allow items to be safely added and removed at any time.
            </exception>
        </member>
        <member name="M:Animancer.IndexedList`2.TryEnumerateNext">
            <summary>
            Moves the <see cref="P:Animancer.IndexedList`2.CurrentIndex"/> so the <see cref="P:Animancer.IndexedList`2.Current"/> property points to the next item in
            this list.
            </summary>
            <remarks>
            This method should only be called after <see cref="M:Animancer.IndexedList`2.BeginEnumeraton"/> and it should be called
            repeatedly until it returns false. <see cref="M:Animancer.IndexedList`2.CancelEnumeration"/> can be used to cancel the
            enumeration early.
            </remarks>
            <returns>False if there are no more items to move to. Otherwise true.</returns>
        </member>
        <member name="M:Animancer.IndexedList`2.CancelEnumeration">
            <summary>
            Clears the <see cref="P:Animancer.IndexedList`2.CurrentIndex"/> so that <see cref="M:Animancer.IndexedList`2.BeginEnumeraton"/> can be used again without
            needing to call <see cref="M:Animancer.IndexedList`2.TryEnumerateNext"/> repeatedly until it returns false.
            </summary>
        </member>
        <member name="M:Animancer.IndexedList`2.GetEnumerator">
            <summary>Returns an enumerator which iterates through this list.</summary>
        </member>
        <member name="M:Animancer.IndexedList`2.System#Collections#Generic#IEnumerable{TItem}#GetEnumerator">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.IndexedList`2.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.IndexedList`2.AssertContents(System.String)">
            <summary>Asserts that the indices stored in all items actually match their index in this list.</summary>
        </member>
        <member name="M:Animancer.IndexedList`2.DeepToString(System.String)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.CollectionPool`2">
            <summary>An <see cref="T:Animancer.ObjectPool`1"/> for <see cref="T:System.Collections.Generic.ICollection`1"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/CollectionPool_2
        </member>
        <member name="M:Animancer.CollectionPool`2.Acquire">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.CollectionPool`2.Release(`1)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.CollectionPool`2.AssertEmpty(`1)">
            <summary>[Assert-Conditional] Asserts that the `collection` is empty.</summary>
        </member>
        <member name="T:Animancer.ListPool">
            <summary>Convenience methods for accessing <see cref="T:Animancer.ListPool`1"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ListPool
        </member>
        <member name="M:Animancer.ListPool.Acquire``1">
            <summary>Returns a spare <see cref="T:System.Collections.Generic.List`1"/> if there are any, or creates a new one.</summary>
            <remarks>Remember to <see cref="M:Animancer.ListPool.Release``1(System.Collections.Generic.List{``0})"/> it when you are done.</remarks>
        </member>
        <member name="M:Animancer.ListPool.Acquire``1(System.Collections.Generic.List{``0}@)">
            <summary>Returns a spare <see cref="T:System.Collections.Generic.List`1"/> if there are any, or creates a new one.</summary>
            <remarks>Remember to <see cref="M:Animancer.ListPool.Release``1(System.Collections.Generic.List{``0})"/> it when you are done.</remarks>
        </member>
        <member name="M:Animancer.ListPool.Release``1(System.Collections.Generic.List{``0})">
            <summary>Clears the `list` and adds it to the list of spares so it can be reused.</summary>
        </member>
        <member name="M:Animancer.ListPool.Release``1(System.Collections.Generic.List{``0}@)">
            <summary>Clears the `list`, adds it to the list of spares so it can be reused, and sets it to <c>null</c>.</summary>
        </member>
        <member name="T:Animancer.ListPool`1">
            <summary>An <see cref="T:Animancer.ObjectPool`1"/> for <see cref="T:System.Collections.Generic.List`1"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ListPool_1
        </member>
        <member name="F:Animancer.ListPool`1.Instance">
            <summary>Singleton.</summary>
        </member>
        <member name="M:Animancer.ListPool`1.New">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.ObjectPool`1">
            <summary>A simple object pooling system.</summary>
            <remarks><typeparamref name="T"/> must not inherit from <see cref="T:UnityEngine.Component"/> or <see cref="T:UnityEngine.ScriptableObject"/>.</remarks>
            https://kybernetik.com.au/animancer/api/Animancer/ObjectPool_1
        </member>
        <member name="F:Animancer.ObjectPool`1.NotResetError">
            <summary>An error message for when something has been modified after being released to the pool.</summary>
            <remarks>
            <strong>Example:</strong>
            <c>AnimancerUtilities.Assert($"A pooled list is not empty. {NotClearError}");</c>
            </remarks>
        </member>
        <member name="M:Animancer.ObjectPool`1.#ctor">
            <summary>
            Creates a new <see cref="T:Animancer.ObjectPool`1"/>
            and asserts that there isn't a more derived type which should be used instead.
            </summary>
        </member>
        <member name="P:Animancer.ObjectPool`1.DefaultInstance">
            <summary>Returns the <see cref="F:Animancer.Static`1.Instance"/>.</summary>
        </member>
        <member name="P:Animancer.ObjectPool`1.Count">
            <summary>The number of spare items currently in this pool.</summary>
        </member>
        <member name="M:Animancer.ObjectPool`1.IncreaseCountTo(System.Int32)">
            <summary>Increases the <see cref="P:Animancer.ObjectPool`1.Count"/> to equal the `count` if it was lower.</summary>
        </member>
        <member name="P:Animancer.ObjectPool`1.Capacity">
            <summary>The <see cref="P:System.Collections.Generic.List`1.Capacity"/> of the internal list of spare items.</summary>
        </member>
        <member name="M:Animancer.ObjectPool`1.IncreaseCapacityTo(System.Int32)">
            <summary>Increases the <see cref="P:Animancer.ObjectPool`1.Capacity"/> to equal the `capacity` if it was lower.</summary>
        </member>
        <member name="M:Animancer.ObjectPool`1.New">
            <summary>Creates a <c>new()</c> instance of <typeparamref name="T"/>.</summary>
        </member>
        <member name="M:Animancer.ObjectPool`1.Acquire">
            <summary>Returns a spare item if there are any, or creates a new one.</summary>
            <remarks>Remember to <see cref="M:Animancer.ObjectPool`1.Release(`0)"/> it when you are done.</remarks>
        </member>
        <member name="M:Animancer.ObjectPool`1.Release(`0)">
            <summary>Adds the `item` to the list of spares so it can be reused.</summary>
        </member>
        <member name="M:Animancer.ObjectPool`1.Release(`0@)">
            <summary>Adds the `item` to the list of spares so it can be reused and sets it to <c>null</c>.</summary>
        </member>
        <member name="M:Animancer.ObjectPool`1.ToString">
            <summary>Returns a description of the state of this pool.</summary>
        </member>
        <member name="M:Animancer.ObjectPool`1.Acquire(`0@)">
            <summary>
            Creates a new <see cref="T:Animancer.ObjectPool`1.Disposable"/> and calls <see cref="M:Animancer.ObjectPool`1.Acquire"/>
            to set the <see cref="F:Animancer.ObjectPool`1.Disposable.Item"/> and `item`.
            </summary>
        </member>
        <member name="T:Animancer.ObjectPool`1.Disposable">
            <summary>
            An <see cref="T:System.IDisposable"/> to allow pooled objects to be acquired and released within <c>using</c>
            statements instead of needing to manually release everything.
            </summary>
        </member>
        <member name="F:Animancer.ObjectPool`1.Disposable.Pool">
            <summary>The <see cref="T:Animancer.ObjectPool`1"/> which the <see cref="F:Animancer.ObjectPool`1.Disposable.Item"/> is acquired from.</summary>
        </member>
        <member name="F:Animancer.ObjectPool`1.Disposable.Item">
            <summary>The object acquired from the <see cref="F:Animancer.ObjectPool`1.Disposable.Pool"/>.</summary>
        </member>
        <member name="M:Animancer.ObjectPool`1.Disposable.#ctor(Animancer.ObjectPool{`0},`0@)">
            <summary>
            Creates a new <see cref="T:Animancer.ObjectPool`1.Disposable"/> and calls <see cref="M:Animancer.ObjectPool`1.Acquire"/>
            to set the <see cref="F:Animancer.ObjectPool`1.Disposable.Item"/> and `item`.
            </summary>
        </member>
        <member name="M:Animancer.ObjectPool`1.Disposable.Dispose">
            <summary><see cref="M:Animancer.ObjectPool`1.Release(`0)"/> the <see cref="F:Animancer.ObjectPool`1.Disposable.Item"/>.</summary>
        </member>
        <member name="T:Animancer.SetPool">
            <summary>Convenience methods for accessing <see cref="T:Animancer.SetPool`1"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/SetPool
        </member>
        <member name="M:Animancer.SetPool.Acquire``1">
            <summary>Returns a spare <see cref="T:System.Collections.Generic.HashSet`1"/> if there are any, or creates a new one.</summary>
            <remarks>Remember to <see cref="M:Animancer.SetPool.Release``1(System.Collections.Generic.HashSet{``0})"/> it when you are done.</remarks>
        </member>
        <member name="M:Animancer.SetPool.Acquire``1(System.Collections.Generic.HashSet{``0}@)">
            <summary>Returns a spare <see cref="T:System.Collections.Generic.HashSet`1"/> if there are any, or creates a new one.</summary>
            <remarks>Remember to <see cref="M:Animancer.SetPool.Release``1(System.Collections.Generic.HashSet{``0})"/> it when you are done.</remarks>
        </member>
        <member name="M:Animancer.SetPool.Release``1(System.Collections.Generic.HashSet{``0})">
            <summary>Clears the `set` and adds it to the list of spares so it can be reused.</summary>
        </member>
        <member name="M:Animancer.SetPool.Release``1(System.Collections.Generic.HashSet{``0}@)">
            <summary>Clears the `set`, adds it to the list of spares so it can be reused, and sets it to <c>null</c>.</summary>
        </member>
        <member name="T:Animancer.SetPool`1">
            <summary>An <see cref="T:Animancer.ObjectPool`1"/> for <see cref="T:System.Collections.Generic.HashSet`1"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/SetPool_1
        </member>
        <member name="F:Animancer.SetPool`1.Instance">
            <summary>Singleton.</summary>
        </member>
        <member name="M:Animancer.SetPool`1.New">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.StringBuilderPool">
            <summary>An <see cref="T:Animancer.ObjectPool`1"/> for <see cref="T:System.Text.StringBuilder"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/StringBuilderPool
        </member>
        <member name="F:Animancer.StringBuilderPool.Instance">
            <summary>Singleton.</summary>
        </member>
        <member name="M:Animancer.StringBuilderPool.New">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.StringBuilderPool.Acquire">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.StringBuilderPool.Release(System.Text.StringBuilder)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Parameter`1">
            <summary>A generic value with an event for when it gets changed.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/Parameter_1
        </member>
        <member name="E:Animancer.Parameter`1.OnValueChanged">
            <summary>Called whenever the <see cref="P:Animancer.Parameter`1.Value"/> is changed.</summary>
        </member>
        <member name="M:Animancer.Parameter`1.Animancer#IParameter#GetOnValueChanged">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Parameter`1.Value">
            <summary>The current value of this parameter.</summary>
            <remarks>Setting this value invokes <see cref="E:Animancer.Parameter`1.OnValueChanged"/>.</remarks>
        </member>
        <member name="P:Animancer.Parameter`1.Animancer#IParameter#Value">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Parameter`1.op_Implicit(Animancer.Parameter{`0})~`0">
            <summary>Returns the <see cref="P:Animancer.Parameter`1.Value"/>.</summary>
        </member>
        <member name="M:Animancer.Parameter`1.GetValue(`0)">
            <summary>Gets the <see cref="P:Animancer.Parameter`1.Value"/>.</summary>
            <remarks>This is exactly the same as the property, but being a method allows it to be used as a delegate.</remarks>
        </member>
        <member name="M:Animancer.Parameter`1.SetValue(`0)">
            <summary>Sets the <see cref="P:Animancer.Parameter`1.Value"/>.</summary>
            <remarks>This is exactly the same as the property, but being a method allows it to be used as a delegate.</remarks>
        </member>
        <member name="P:Animancer.Parameter`1.ValueType">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Parameter`1.Key">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Parameter`1.System#IComparable{Animancer#IParameter}#CompareTo(Animancer.IParameter)">
            <summary>Compares the <see cref="P:Animancer.Parameter`1.Key"/>s.</summary>
        </member>
        <member name="M:Animancer.Parameter`1.#ctor(Animancer.StringReference)">
            <summary>Creates a new <see cref="T:Animancer.Parameter`1"/>.</summary>
        </member>
        <member name="M:Animancer.Parameter`1.#ctor(Animancer.StringReference,`0)">
            <summary>Creates a new <see cref="T:Animancer.Parameter`1"/> with the specified starting `value`.</summary>
        </member>
        <member name="M:Animancer.Parameter`1.ToString">
            <summary>Returns a string describing this parameter.</summary>
        </member>
        <member name="P:Animancer.Parameter`1.LogContext">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Parameter`1.InspectorControlOnly">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Parameter`1.LogOnValueChangedRegistration(System.Char,System.Action{`0})">
            <summary>[Assert-Only]
            Logs a message indicating that a new listener has been added or removed from <see cref="E:Animancer.Parameter`1.OnValueChanged"/>.
            </summary>
        </member>
        <member name="M:Animancer.Parameter`1.LogValueGet">
            <summary>[Assert-Only]
            Logs a message indicating that the <see cref="P:Animancer.Parameter`1.Value"/> has been accessed.
            </summary>
        </member>
        <member name="M:Animancer.Parameter`1.LogValueSet(`0)">
            <summary>[Assert-Only]
            Logs a message indicating that the <see cref="P:Animancer.Parameter`1.Value"/> has been changed.
            </summary>
        </member>
        <member name="M:Animancer.Parameter`1.AcquireStringBuilderWithPrefix">
            <summary>[Assert-Only]
            Acquires a pooled <see cref="T:System.Text.StringBuilder"/> and appends the standard prefix to describe
            this parameter.
            </summary>
        </member>
        <member name="T:Animancer.ParameterDictionary">
            <summary>A dictionary of <see cref="T:Animancer.IParameter"/>s registered using <see cref="T:Animancer.StringReference"/>s.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ParameterDictionary
        </member>
        <member name="P:Animancer.ParameterDictionary.IsDrawingInspector">
            <summary>[Assert-Only] Is the Inspector currently being drawn?</summary>
        </member>
        <member name="P:Animancer.ParameterDictionary.Count">
            <summary>The number of parameters that have been registered.</summary>
        </member>
        <member name="M:Animancer.ParameterDictionary.TryGet(Animancer.StringReference,Animancer.IParameter@)">
            <summary>Tries to get a `parameter` registered with the `key`.</summary>
            <remarks>The `key` must not be null or empty.</remarks>
        </member>
        <member name="M:Animancer.ParameterDictionary.TryGet``1(Animancer.StringReference,Animancer.Parameter{``0}@)">
            <summary>Tries to get a `parameter` registered with the `key` and verifies its type.</summary>
            <remarks>The `key` must not be null or empty.</remarks>
        </member>
        <member name="M:Animancer.ParameterDictionary.GetOrCreate``1(Animancer.StringReference)">
            <summary>Gets an existing parameter registered with the `key` or creates one if necessary.</summary>
            <remarks>The `key` must not be null or empty.</remarks>
        </member>
        <member name="M:Animancer.ParameterDictionary.GetValue``1(Animancer.StringReference)">
            <summary>
            Gets the value of the parameter registered with the `key`.
            Returns the default value if no such parameter exists.
            </summary>
            <remarks>The `key` must not be null or empty.</remarks>
        </member>
        <member name="M:Animancer.ParameterDictionary.GetFloat(Animancer.StringReference)">
            <summary>
            Gets the value of a <see cref="T:System.Single"/> parameter registered with the `key`.
            Returns 0 if no such parameter exists.
            </summary>
            <remarks>The `key` must not be null or empty.</remarks>
        </member>
        <member name="M:Animancer.ParameterDictionary.SetValue``1(Animancer.StringReference,``0)">
            <summary>
            Sets the `value` of the parameter registered with the `key`.
            Creates the parameter if it didn't exist yet.
            </summary>
            <remarks>The `key` must not be null or empty.</remarks>
        </member>
        <member name="M:Animancer.ParameterDictionary.AddOnValueChanged``1(Animancer.StringReference,System.Action{``0},System.Boolean)">
            <summary>
            Adds an <see cref="E:Animancer.Parameter`1.OnValueChanged"/> callback to the parameter registered with the `key`.
            Creates the parameter if it didn't exist yet.
            </summary>
            <remarks>The `key` must not be null or empty.</remarks>
        </member>
        <member name="M:Animancer.ParameterDictionary.RemoveOnValueChanged``1(Animancer.StringReference,System.Action{``0})">
            <summary>
            Removes an <see cref="E:Animancer.Parameter`1.OnValueChanged"/> callback to the parameter registered with the `key`.
            </summary>
            <remarks>The `key` must not be null or empty.</remarks>
        </member>
        <member name="M:Animancer.ParameterDictionary.GetEnumerator">
            <summary>Returns an enumerator that iterates through all registered parameters.</summary>
        </member>
        <member name="M:Animancer.ParameterDictionary.System#Collections#Generic#IEnumerable{Animancer#IParameter}#GetEnumerator">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ParameterDictionary.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.ParameterDictionary.Keys">
            <summary>All registered keys.</summary>
        </member>
        <member name="P:Animancer.ParameterDictionary.Parameters">
            <summary>All registered parameters.</summary>
        </member>
        <member name="T:Animancer.Static`1">
            <summary>
            Holds an instance of <typeparamref name="T"/> which is automatically created
            using its parameterless constructor when first accessed.
            </summary>
            <remarks>
            Don't use classes that inherit from <see cref="T:UnityEngine.Object"/> as <typeparamref name="T"/>.
            <para></para>
            This is close to the "Singleton Programming Pattern", except it can't prevent additional instances of
            <typeparamref name="T"/> from being created elsewhere.
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/Static_1
        </member>
        <member name="F:Animancer.Static`1.Instance">
            <summary>
            An instance of <typeparamref name="T"/> which is automatically created
            using its parameterless constructor when first accessed.
            </summary>
        </member>
        <member name="M:Animancer.Static`1.Initialize">
            <summary>Ensures that the <see cref="F:Animancer.Static`1.Instance"/> has been created without immediately using it.</summary>
        </member>
        <member name="M:Animancer.Static`1.AssertSingularity">
            <summary>[Assert-Conditional]
            Call this in the constructor of <typeparamref name="T"/> to make sure there is only one instance.
            </summary>
        </member>
        <member name="T:Animancer.StringAssetInternal">
            <summary>
            A <see cref="T:UnityEngine.ScriptableObject"/> which holds a <see cref="T:Animancer.StringReference"/>
            based on its <see cref="P:UnityEngine.Object.name"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer/StringAsset
        </member>
        <member name="P:Animancer.StringAssetInternal.Name">
            <summary>A <see cref="T:Animancer.StringReference"/> to the <see cref="P:UnityEngine.Object.name"/>.</summary>
            <remarks>
            This value is gathered when first accessed, but will not be automatically updated after that
            because doing so causes some garbage allocation (except in the Unity Editor for convenience).
            </remarks>
        </member>
        <member name="P:Animancer.StringAssetInternal.Key">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.StringAssetInternal.Compare(Animancer.StringAssetInternal,Animancer.StringAssetInternal)">
            <summary>Compares the <see cref="F:Animancer.StringReference.String"/>s.</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.CompareTo(Animancer.StringAssetInternal)">
            <summary>Compares the <see cref="F:Animancer.StringReference.String"/>s.</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.Equals(Animancer.StringAssetInternal)">
            <summary>Is the <see cref="P:Animancer.StringAssetInternal.Name"/> equal to the `other`?</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.Equals(Animancer.StringReference)">
            <summary>Is the <see cref="P:Animancer.StringAssetInternal.Name"/> equal to the `other`?</summary>
            <remarks>Uses <see cref="M:System.Object.ReferenceEquals(System.Object,System.Object)"/>.</remarks>
        </member>
        <member name="M:Animancer.StringAssetInternal.Equals(System.String)">
            <summary>Is the <see cref="P:Animancer.StringAssetInternal.Name"/> equal to the `value`?</summary>
            <remarks>Checks regular string equality because the `value` might not be interned.</remarks>
        </member>
        <member name="M:Animancer.StringAssetInternal.Equals(System.Object)">
            <summary>Is the <see cref="P:Animancer.StringAssetInternal.Name"/> equal to the `other`?</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.op_Equality(Animancer.StringAssetInternal,Animancer.StringAssetInternal)">
            <summary>Are the <see cref="P:Animancer.StringAssetInternal.Name"/>s equal?</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.op_Inequality(Animancer.StringAssetInternal,Animancer.StringAssetInternal)">
            <summary>Are the <see cref="P:Animancer.StringAssetInternal.Name"/>s not equal?</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.op_Equality(Animancer.StringAssetInternal,Animancer.StringReference)">
            <summary>Is the <see cref="P:Animancer.StringAssetInternal.Name"/> equal to `b`?</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.op_Inequality(Animancer.StringAssetInternal,Animancer.StringReference)">
            <summary>Is the <see cref="P:Animancer.StringAssetInternal.Name"/> not equal to `b`?</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.op_Equality(Animancer.StringReference,Animancer.StringAssetInternal)">
            <summary>Is the <see cref="P:Animancer.StringAssetInternal.Name"/> equal to `a`?</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.op_Inequality(Animancer.StringReference,Animancer.StringAssetInternal)">
            <summary>Is the <see cref="P:Animancer.StringAssetInternal.Name"/> not equal to `a`?</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.op_Equality(Animancer.StringAssetInternal,System.String)">
            <summary>Is the <see cref="P:Animancer.StringAssetInternal.Name"/> equal to `b`?</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.op_Inequality(Animancer.StringAssetInternal,System.String)">
            <summary>Is the <see cref="P:Animancer.StringAssetInternal.Name"/> not equal to `b`?</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.op_Equality(System.String,Animancer.StringAssetInternal)">
            <summary>Is the <see cref="P:Animancer.StringAssetInternal.Name"/> equal to `a`?</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.op_Inequality(System.String,Animancer.StringAssetInternal)">
            <summary>Is the <see cref="P:Animancer.StringAssetInternal.Name"/> not equal to `a`?</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.GetHashCode">
            <summary>Returns the hash code of the <see cref="P:Animancer.StringAssetInternal.Name"/>.</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.ToString">
            <summary>Returns the <see cref="P:Animancer.StringAssetInternal.Name"/>.</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.Animancer#IConvertable{Animancer#StringReference}#Convert">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.StringAssetInternal.Animancer#IConvertable{System#String}#Convert">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.StringAssetInternal.op_Implicit(Animancer.StringAssetInternal)~System.String">
            <summary>Returns the <see cref="P:Animancer.StringAssetInternal.Name"/>.</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.op_Implicit(Animancer.StringAssetInternal)~Animancer.StringReference">
            <summary>Returns the <see cref="P:Animancer.StringAssetInternal.Name"/>.</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.ToStringReferences(Animancer.StringAssetInternal[])">
            <summary>Creates a new array containing the <see cref="P:Animancer.StringAssetInternal.Name"/>s.</summary>
        </member>
        <member name="M:Animancer.StringAssetInternal.ToStrings(Animancer.StringAssetInternal[])">
            <summary>Creates a new array containing the <see cref="P:Animancer.StringAssetInternal.Name"/>s.</summary>
        </member>
        <member name="T:Animancer.StringReference">
            <summary>
            A <see cref="T:System.String"/> wrapper which allows fast reference equality checks and dictionary usage
            by ensuring that users of identical strings are given the same <see cref="T:Animancer.StringReference"/>
            instead of needing to compare each character in the strings.
            </summary>
            <remarks>
            Rather than a constructor, instances of this class are acquired via <see cref="M:Animancer.StringReference.Get(System.String)"/>
            or via implicit conversion from <see cref="T:System.String"/> (which calls the same method).
            <para></para>
            Unlike <c>UnityEngine.InputSystem.Utilities.InternedString</c>,
            this implementation is case-sensitive and treats <c>null</c> and <c>""</c> as not equal.
            It's also a class to allow usage as a key in a dictionary keyed by <see cref="T:System.Object"/> without boxing.
            <para></para>
            <strong>Example:</strong>
            <code>
            public static readonly StringReference MyStringReference = "My String";
            </code>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/StringReference
        </member>
        <member name="F:Animancer.StringReference.String">
            <summary>The encapsulated <see cref="T:System.String"/>.</summary>
            <remarks>This field will never be null.</remarks>
        </member>
        <member name="M:Animancer.StringReference.Get(System.String)">
            <summary>Returns a <see cref="T:Animancer.StringReference"/> containing the `value`.</summary>
            <remarks>
            The returned reference is cached and the same one will be
            returned each time this method is called with the same `value`.
            <para></para>
            Returns <c>null</c> if the `value` is <c>null</c>.
            <para></para>
            The `value` is case sensitive.
            </remarks>
        </member>
        <member name="M:Animancer.StringReference.Get(System.String[])">
            <summary>Creates a new array of <see cref="T:Animancer.StringReference"/>s to the `strings`.</summary>
        </member>
        <member name="M:Animancer.StringReference.TryGet(System.String,Animancer.StringReference@)">
            <summary>Returns a <see cref="T:Animancer.StringReference"/> containing the `value` if one has already been created.</summary>
            <remarks>The `value` is case sensitive.</remarks>
        </member>
        <member name="M:Animancer.StringReference.#ctor(System.String)">
            <summary>Creates a new <see cref="T:Animancer.StringReference"/>.</summary>
        </member>
        <member name="M:Animancer.StringReference.op_Implicit(System.String)~Animancer.StringReference">
            <summary>Calls <see cref="M:Animancer.StringReference.Get(System.String)"/>.</summary>
        </member>
        <member name="M:Animancer.StringReference.Unique(System.String)">
            <summary>[Internal]
            Returns a new <see cref="T:Animancer.StringReference"/> which will not be shared by regular calls to
            <see cref="M:Animancer.StringReference.Get(System.String)"/>.
            </summary>
            <remarks>
            This means the reference will never be equal to others
            even if they contain the same <see cref="F:Animancer.StringReference.String"/>.
            </remarks>
        </member>
        <member name="M:Animancer.StringReference.ToString">
            <summary>Returns the <see cref="F:Animancer.StringReference.String"/>.</summary>
        </member>
        <member name="M:Animancer.StringReference.op_Implicit(Animancer.StringReference)~System.String">
            <summary>Returns the <see cref="F:Animancer.StringReference.String"/>.</summary>
        </member>
        <member name="M:Animancer.StringReference.Animancer#IConvertable{System#String}#Convert">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.StringReference.CompareTo(Animancer.StringReference)">
            <summary>Compares the <see cref="F:Animancer.StringReference.String"/>s.</summary>
        </member>
        <member name="T:Animancer.StringReferenceExtensions">
            <summary>Extension methods for <see cref="T:Animancer.StringReference"/>.</summary>
        </member>
        <member name="M:Animancer.StringReferenceExtensions.IsNullOrEmpty(Animancer.StringReference)">
            <summary>Is the `reference` <c>null</c> or its <see cref="F:Animancer.StringReference.String"/> empty?</summary>
            <remarks>Similar to <see cref="M:System.String.IsNullOrEmpty(System.String)"/>.</remarks>
        </member>
        <member name="M:Animancer.StringReferenceExtensions.EqualsWhereEmptyIsNull(Animancer.StringReference,Animancer.StringReference)">
            <summary>
            Is the <see cref="F:Animancer.StringReference.String"/> equal to the `other`
            when treating <c>""</c> as equal to <c>null</c>?
            </summary>
        </member>
        <member name="M:Animancer.StringReferenceExtensions.ToStrings(Animancer.StringReference[])">
            <summary>Creates a new array containing the <see cref="F:Animancer.StringReference.String"/>s.</summary>
        </member>
        <member name="T:Animancer.Updatable">
            <summary>[Pro-Only] An object that can be updated during Animancer's animation updates.</summary>
            <remarks>
            See <see cref="T:Animancer.IUpdatable"/> for an example of how to use this class.
            Simply inherit from this instead of implementing <see cref="T:Animancer.IUpdatable"/> directly.
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/Updatable
        </member>
        <member name="P:Animancer.Updatable.Animancer#IUpdatable#UpdatableIndex">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Updatable.Update">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.AnimancerGraphCleanup">
            <summary>[Editor-Only]
            Keeps track of <see cref="T:Animancer.AnimancerGraph"/> instances
            to ensure that they're properly cleaned up.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerGraphCleanup
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphCleanup.AddGraph(Animancer.AnimancerGraph)">
            <summary>[Editor-Only] Registers a `graph` to make sure it gets cleaned up properly.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphCleanup.RemoveGraph(Animancer.AnimancerGraph)">
            <summary>[Editor-Only] Removes the `graph` from the list of instances.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphCleanup.ShouldStayAlive(Animancer.AnimancerGraph)">
            <summary>Should this graph should stay alive instead of being destroyed?</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphCleanup.HasChangedToOrFromAnimatePhysics(System.Nullable{UnityEngine.AnimatorUpdateMode},UnityEngine.AnimatorUpdateMode)">
            <summary>[Editor-Only]
            Returns true if the `initial` mode was <see cref="F:UnityEngine.AnimatorUpdateMode.AnimatePhysics"/>
            and the `current` has changed to another mode or if the `initial` mode was something else
            and the `current` has changed to <see cref="F:UnityEngine.AnimatorUpdateMode.AnimatePhysics"/>.
            </summary>
        </member>
        <member name="T:Animancer.Editor.AnimationGatherer">
            <summary>[Editor-Only]
            A system that procedurally gathers animations throughout the hierarchy without needing explicit references.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimationGatherer
            
        </member>
        <member name="F:Animancer.Editor.AnimationGatherer.Clips">
            <summary>All the <see cref="T:UnityEngine.AnimationClip"/>s that have been gathered.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimationGatherer.Transitions">
            <summary>All the <see cref="T:Animancer.ITransition"/>s that have been gathered.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationGatherer.GatherAnimationClips(System.Collections.Generic.ICollection{UnityEngine.AnimationClip})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.AnimationGatherer.ClearCache">
            <summary>Clears all cached gatherers.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimationGatherer.logExceptions">
            <summary>Should exceptions thrown while gathering animations be logged? Default is false to ignore them.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationGatherer.HandleException(System.Exception)">
            <summary>Logs the `exception` if <see cref="F:Animancer.Editor.AnimationGatherer.logExceptions"/> is true. Otherwise does nothing.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationGatherer.GatherFromGameObject(UnityEngine.GameObject)">
            <summary>
            Returns a cached <see cref="T:Animancer.Editor.AnimationGatherer"/> containing any <see cref="T:UnityEngine.AnimationClip"/>s referenced by
            components in the same hierarchy as the `gameObject`. See <see cref="T:Animancer.ICharacterRoot"/> for details.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimationGatherer.GatherFromGameObject(UnityEngine.GameObject,System.Collections.Generic.ICollection{UnityEngine.AnimationClip})">
            <summary>
            Fills the `clips` with any <see cref="T:UnityEngine.AnimationClip"/>s referenced by components in the same hierarchy as
            the `gameObject`. See <see cref="T:Animancer.ICharacterRoot"/> for details.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimationGatherer.GatherFromGameObject(UnityEngine.GameObject,UnityEngine.AnimationClip[]@,System.Boolean)">
            <summary>
            Fills the `clips` with any <see cref="T:UnityEngine.AnimationClip"/>s referenced by components in the same hierarchy as
            the `gameObject`. See <see cref="T:Animancer.ICharacterRoot"/> for details.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimationGatherer.GatherFromObject(System.Object,System.Int32)">
            <summary>Gathers all animations from the `source`s fields.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimationGatherer.TypeToGathererDelegate">
            <summary>Types mapped to a delegate that can quickly gather their clips.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationGatherer.GatherFromFields(System.Object,System.Int32)">
            <summary>
            Uses reflection to gather <see cref="T:UnityEngine.AnimationClip"/>s from fields on the `source` object.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimationGatherer.BuildClipGathererDelegate(System.Type,System.Int32)">
            <summary>
            Creates a delegate to gather <see cref="T:UnityEngine.AnimationClip"/>s from all relevant fields in a given `type`.
            </summary>
        </member>
        <member name="T:Animancer.Editor.InternalSerializableTypeAttribute">
            <summary>[Editor-Conditional]
            A <see cref="T:UnityEngine.Scripting.APIUpdating.MovedFromAttribute"/> which indicates that a type may have been previously
            defined in the pre-compiled Animancer Lite DLL in an earlier version of Animancer.
            </summary>
            <remarks>
            This allows <see cref="T:UnityEngine.SerializeReference"/> fields of the attributed type
            to retain their values when upgrading from Animancer Lite to Animancer Pro.
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/InternalSerializableTypeAttribute
        </member>
        <member name="M:Animancer.Editor.InternalSerializableTypeAttribute.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Editor.InternalSerializableTypeAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.ITransitionGUI">
            <summary>[Editor-Only] An object that can draw custom GUI elements relating to transitions.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ITransitionGUI
        </member>
        <member name="M:Animancer.Editor.ITransitionGUI.OnPreviewSceneGUI(Animancer.Editor.TransitionPreviewDetails)">
            <summary>Called while drawing the GUI for the <see cref="T:Animancer.Editor.Previews.TransitionPreviewWindow"/> scene.</summary>
        </member>
        <member name="M:Animancer.Editor.ITransitionGUI.OnTimelineBackgroundGUI">
            <summary>
            Called while drawing the background GUI for the <see cref="T:Animancer.Editor.TimelineGUI"/> for the
            <see cref="P:Animancer.IHasEvents.Events"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.ITransitionGUI.OnTimelineForegroundGUI">
            <summary>
            Called while drawing the foreground GUI for the <see cref="T:Animancer.Editor.TimelineGUI"/> for the
            <see cref="P:Animancer.IHasEvents.Events"/>.
            </summary>
        </member>
        <member name="T:Animancer.Editor.TransitionPreviewDetails">
            <summary>[Editor-Only] Details about the current preview used by <see cref="M:Animancer.Editor.ITransitionGUI.OnPreviewSceneGUI(Animancer.Editor.TransitionPreviewDetails)"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/TransitionPreviewDetails
        </member>
        <member name="F:Animancer.Editor.TransitionPreviewDetails.Animancer">
            <summary>The <see cref="T:Animancer.AnimancerGraph"/> used to play the preview.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionPreviewDetails.Transform">
            <summary>The <see cref="T:UnityEngine.Transform"/> of the <see cref="T:UnityEngine.Animator"/> used to play the preview.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionPreviewDetails.#ctor(Animancer.AnimancerGraph)">
            <summary>Creates a new <see cref="T:Animancer.Editor.TransitionPreviewDetails"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.Tools.AnimancerSettingsTool">
            <summary>[Editor-Only] Displays the <see cref="T:Animancer.Editor.AnimancerSettingsInternal"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Tools/AnimancerSettingsTool
        </member>
        <member name="P:Animancer.Editor.Tools.AnimancerSettingsTool.DisplayOrder">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.AnimancerSettingsTool.Name">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.AnimancerSettingsTool.Instructions">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.AnimancerSettingsTool.HelpURL">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerSettingsTool.OnDisable">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerSettingsTool.DoBodyGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.Tools.AnimancerToolsWindow">
            <summary>[Editor-Only] [Pro-Only]
            An <see cref="T:UnityEditor.EditorWindow"/> with various utilities for managing sprites and generating animations.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/tools">
            Animancer Tools</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Tools/AnimancerToolsWindow
            
        </member>
        <member name="F:Animancer.Editor.Tools.AnimancerToolsWindow.Name">
            <summary>The display name of this window.</summary>
        </member>
        <member name="P:Animancer.Editor.Tools.AnimancerToolsWindow.Instance">
            <summary>The singleton instance of this window.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.FindSerializedPropertyForTool(Animancer.Editor.Tools.AnimancerToolsWindow.Tool)">
            <summary>Returns the <see cref="T:UnityEditor.SerializedProperty"/> which represents the specified `tool`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.Repaint">
            <summary>Causes the <see cref="P:Animancer.Editor.Tools.AnimancerToolsWindow.Instance"/> to redraw its GUI.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.RecordUndo">
            <summary>Calls <see cref="M:UnityEditor.Undo.RecordObject(UnityEngine.Object,System.String)"/> for this window.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.BeginChangeCheck">
            <summary>Calls <see cref="M:UnityEditor.EditorGUI.BeginChangeCheck"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.EndChangeCheck">
            <summary>Calls <see cref="M:UnityEditor.EditorGUI.EndChangeCheck"/> and <see cref="M:Animancer.Editor.Tools.AnimancerToolsWindow.RecordUndo"/> if it returned true.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.EndChangeCheck``1(``0@,``0)">
            <summary>Calls <see cref="M:Animancer.Editor.Tools.AnimancerToolsWindow.EndChangeCheck"/> and sets the <c>field = value</c> if it returned true.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.CreateReorderableList``1(System.Collections.Generic.List{``0},System.String,UnityEditorInternal.ReorderableList.ElementCallbackDelegate,System.Boolean)">
            <summary>Creates and initializes a new <see cref="T:UnityEditorInternal.ReorderableList"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.CreateReorderableObjectList``1(System.Collections.Generic.List{``0},System.String,System.Boolean)">
            <summary>Creates and initializes a new <see cref="T:UnityEditorInternal.ReorderableList"/> for <see cref="T:UnityEngine.Sprite"/>s.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.CreateReorderableStringList(System.Collections.Generic.List{System.String},System.String,System.Func{UnityEngine.Rect,System.Int32,System.String})">
            <summary>Creates a new <see cref="T:UnityEditorInternal.ReorderableList"/> for <see cref="T:System.String"/>s.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.CreateReorderableStringList(System.Collections.Generic.List{System.String},System.String)">
            <summary>Creates a new <see cref="T:UnityEditorInternal.ReorderableList"/> for <see cref="T:System.String"/>s.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.Open">
            <summary>Opens the <see cref="T:Animancer.Editor.Tools.AnimancerToolsWindow"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.Open(System.Type)">
            <summary>Opens the <see cref="T:Animancer.Editor.Tools.AnimancerToolsWindow"/> showing the specified `tool`.</summary>
        </member>
        <member name="T:Animancer.Editor.Tools.AnimancerToolsWindow.Tool">
            <summary>[Editor-Only] [Pro-Only] Base class for tools in the <see cref="T:Animancer.Editor.Tools.AnimancerToolsWindow"/>.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/tools">
            Animancer Tools</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Tools/Tool
            
        </member>
        <member name="P:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.IsVisible">
            <summary>Is this tool currently visible?</summary>
        </member>
        <member name="P:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.IsExpanded">
            <summary>Is the body of this tool currently visible?</summary>
        </member>
        <member name="P:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.DisplayOrder">
            <summary>Lower numbers display first.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.CompareTo(Animancer.Editor.Tools.AnimancerToolsWindow.Tool)">
            <summary>Compares the <see cref="P:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.DisplayOrder"/> to put lower numbers first.</summary>
        </member>
        <member name="P:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.Name">
            <summary>The display name of this tool.</summary>
        </member>
        <member name="P:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.Instructions">
            <summary>The usage instructions to display at the top of this tool.</summary>
        </member>
        <member name="P:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.HelpURL">
            <summary>The URL for the help button in the header to open.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.OnSelectionChanged">
            <summary>Called whenever the <see cref="T:UnityEditor.Selection"/> changes.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.OnEnable(System.Int32)">
            <summary>Called by <see cref="M:Animancer.Editor.Tools.AnimancerToolsWindow.OnEnable"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.OnDisable">
            <summary>Called by <see cref="M:Animancer.Editor.Tools.AnimancerToolsWindow.OnDisable"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.DoGUI">
            <summary>Draws the GUI for this tool.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.DoHeaderGUI">
            <summary>
            Draws the Header GUI for this tool which is displayed regardless of whether it is expanded or not.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.DoBodyGUI">
            <summary>Draws the Body GUI for this tool which is only displayed while it is expanded.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.SaveModifiedAsset``1(System.String,System.String,``0,System.Action{``0})">
            <summary>Asks the user where they want to save a modified asset, calls `modify` on it, and saves it.</summary>
        </member>
        <member name="P:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.HelpIcon">
            <summary>The help icon image used in the tool header.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimancerToolsWindow.Tool.HandleDragAndDropIntoList``1(UnityEngine.Rect,System.Collections.Generic.IList{``0},System.Boolean)">
            <summary>Adds any objects dropped in the `area` to the `list`.</summary>
        </member>
        <member name="T:Animancer.Editor.Tools.AnimationModifierTool">
            <summary>[Editor-Only] [Pro-Only]
            A base <see cref="T:Animancer.Editor.Tools.AnimancerToolsWindow.Tool"/> for modifying <see cref="T:UnityEngine.AnimationClip"/>s.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/tools">
            Animancer Tools</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Tools/AnimationModifierTool
            
        </member>
        <member name="P:Animancer.Editor.Tools.AnimationModifierTool.Animation">
            <summary>The currently selected <see cref="T:UnityEngine.AnimationClip"/> asset.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimationModifierTool.OnEnable(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimationModifierTool.OnSelectionChanged">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimationModifierTool.OnAnimationChanged">
            <summary>Called whenever the selected <see cref="P:Animancer.Editor.Tools.AnimationModifierTool.Animation"/> changes.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.AnimationModifierTool.DoBodyGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.Tools.GenerateSpriteAnimationsTool">
            <summary>[Editor-Only] [Pro-Only] 
            A <see cref="T:Animancer.Editor.Tools.SpriteModifierTool"/> for generating <see cref="T:UnityEngine.AnimationClip"/>s from <see cref="T:UnityEngine.Sprite"/>s.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/tools/generate-sprite-animations">
            Generate Sprite Animations</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Tools/GenerateSpriteAnimationsTool
            
        </member>
        <member name="P:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.DisplayOrder">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.Name">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.HelpURL">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.Instructions">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.OnEnable(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.OnSelectionChanged">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.DoBodyGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.CalculateDisplayElementHeight(System.Int32)">
            <summary>Calculates the height of an animation to generate.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.DrawDisplayElement(UnityEngine.Rect,System.Int32,System.Boolean,System.Boolean)">
            <summary>Draws the details of an animation to generate.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.DrawAnimationHeader(UnityEngine.Rect@,System.Int32,System.Collections.Generic.List{UnityEngine.Sprite}@)">
            <summary>Draws the name and preview of an animation to generate.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.DrawAnimationBody(UnityEngine.Rect@,System.Collections.Generic.List{UnityEngine.Sprite})">
            <summary>Draws the sprite contents of an animation to generate.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.GenerateAnimationsBySpriteName(System.Collections.Generic.List{UnityEngine.Sprite})">
            <summary>Uses <see cref="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.GatherNameToSprites(System.Collections.Generic.List{UnityEngine.Sprite},System.Collections.Generic.Dictionary{System.String,System.Collections.Generic.List{UnityEngine.Sprite}})"/> and creates new animations from those groups.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.GatherNameToSprites(System.Collections.Generic.List{UnityEngine.Sprite},System.Collections.Generic.Dictionary{System.String,System.Collections.Generic.List{UnityEngine.Sprite}})">
            <summary>Groups the `sprites` by name into the `nameToSptires`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.ValidateGenerateAnimationsBySpriteName">
            <summary>Should <see cref="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.GenerateAnimationsBySpriteName"/> be enabled or greyed out?</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.GenerateAnimationsBySpriteName">
            <summary>Calls <see cref="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.GenerateAnimationsBySpriteName(System.Collections.Generic.List{UnityEngine.Sprite})"/> with the selected <see cref="T:UnityEngine.Sprite"/>s.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.GetCachedSpritesToGenerateAnimations">
            <summary>
            Returns a list of <see cref="T:UnityEngine.Sprite"/>s which will be passed into
            <see cref="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.GenerateAnimationsBySpriteName(System.Collections.Generic.List{UnityEngine.Sprite})"/> by <see cref="F:UnityEditor.EditorApplication.delayCall"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.GenerateAnimationsFromSpriteByName(UnityEditor.MenuCommand)">
            <summary>
            Adds the <see cref="F:UnityEditor.MenuCommand.context"/> to the <see cref="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.GetCachedSpritesToGenerateAnimations"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.ValidateGenerateAnimationsFromTextureBySpriteName(UnityEditor.MenuCommand)">
            <summary>Should <see cref="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.GenerateAnimationsFromTextureBySpriteName(UnityEditor.MenuCommand)"/> be enabled or greyed out?</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.GenerateAnimationsFromTextureBySpriteName(UnityEditor.MenuCommand)">
            <summary>
            Adds all <see cref="T:UnityEngine.Sprite"/> sub-assets of the <see cref="F:UnityEditor.MenuCommand.context"/> to the
            <see cref="M:Animancer.Editor.Tools.GenerateSpriteAnimationsTool.GetCachedSpritesToGenerateAnimations"/>.
            </summary>
        </member>
        <member name="T:Animancer.Editor.Tools.GenerateSpriteAnimationsSettings">
            <summary>[Editor-Only] Settings for <see cref="T:Animancer.Editor.Tools.GenerateSpriteAnimationsTool"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Tools/GenerateSpriteAnimationsSettings
        </member>
        <member name="P:Animancer.Editor.Tools.GenerateSpriteAnimationsSettings.Instance">
            <summary>Gets or creates an instance.</summary>
        </member>
        <member name="P:Animancer.Editor.Tools.GenerateSpriteAnimationsSettings.SerializedProperty">
            <summary>The <see cref="T:UnityEditor.SerializedProperty"/> representing the <see cref="P:Animancer.Editor.Tools.GenerateSpriteAnimationsSettings.Instance"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Tools.GenerateSpriteAnimationsSettings.DisplayName">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.GenerateSpriteAnimationsSettings.Index">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.GenerateSpriteAnimationsSettings.FrameRate">
            <summary>The frame rate to use for new animations.</summary>
        </member>
        <member name="P:Animancer.Editor.Tools.GenerateSpriteAnimationsSettings.HierarchyPath">
            <summary>The Transform Hierarchy path from the <see cref="T:UnityEngine.Animator"/> to the object being animated.</summary>
        </member>
        <member name="P:Animancer.Editor.Tools.GenerateSpriteAnimationsSettings.TargetType">
            <summary>The type of component being animated. Defaults to <see cref="T:UnityEngine.SpriteRenderer"/> if not set.</summary>
        </member>
        <member name="F:Animancer.Editor.Tools.GenerateSpriteAnimationsSettings.DefaultPropertyName">
            <summary>The default value for <see cref="P:Animancer.Editor.Tools.GenerateSpriteAnimationsSettings.PropertyName"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Tools.GenerateSpriteAnimationsSettings.PropertyName">
            <summary>The path of the property being animated.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.GenerateSpriteAnimationsSettings.FillDefaults">
            <summary>Reverts any empty values to their defaults.</summary>
        </member>
        <member name="T:Animancer.Editor.Tools.ModifySpritesTool">
            <summary>[Editor-Only] [Pro-Only] 
            A <see cref="T:Animancer.Editor.Tools.SpriteModifierTool"/> for modifying <see cref="T:UnityEngine.Sprite"/> detauls.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/tools/modify-sprites">
            Modify Sprites</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Tools/ModifySpritesTool
            
        </member>
        <member name="P:Animancer.Editor.Tools.ModifySpritesTool.DisplayOrder">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.ModifySpritesTool.Name">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.ModifySpritesTool.HelpURL">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.ModifySpritesTool.Instructions">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.ModifySpritesTool.OnEnable(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.ModifySpritesTool.DoBodyGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.Tools.PackTexturesTool">
            <summary>[Editor-Only] [Pro-Only] 
            A <see cref="T:Animancer.Editor.Tools.AnimancerToolsWindow.Tool"/> for packing multiple <see cref="T:UnityEngine.Texture2D"/>s into a single image.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/tools/pack-textures">
            Pack Textures</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Tools/PackTexturesTool
            
        </member>
        <member name="P:Animancer.Editor.Tools.PackTexturesTool.DisplayOrder">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.PackTexturesTool.Name">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.PackTexturesTool.HelpURL">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.PackTexturesTool.Instructions">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.PackTexturesTool.OnEnable(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.PackTexturesTool.DoBodyGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.PackTexturesTool.RemoveDuplicates``1(System.Collections.Generic.IList{``0})">
            <summary>Removes any items from the `list` that are the same as earlier items.</summary>
        </member>
        <member name="T:Animancer.Editor.Tools.RemapAnimationBindingsTool">
            <summary>[Editor-Only] [Pro-Only] 
            A <see cref="T:Animancer.Editor.Tools.AnimancerToolsWindow.Tool"/> for changing which bones an <see cref="T:UnityEngine.AnimationClip"/>s controls.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/tools/remap-animation-bindings">
            Remap Animation Bindings</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Tools/RemapAnimationBindingsTool
            
        </member>
        <member name="P:Animancer.Editor.Tools.RemapAnimationBindingsTool.DisplayOrder">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.RemapAnimationBindingsTool.Name">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.RemapAnimationBindingsTool.HelpURL">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.RemapAnimationBindingsTool.Instructions">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.RemapAnimationBindingsTool.OnEnable(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.RemapAnimationBindingsTool.OnAnimationChanged">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.RemapAnimationBindingsTool.DoBodyGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.RemapAnimationBindingsTool.GatherBindings">
            <summary>Gathers the bindings from the <see cref="P:Animancer.Editor.Tools.AnimationModifierTool.Animation"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.RemapAnimationBindingsTool.IsHumanoidBinding(System.String)">
            <summary>Is the `propertyName` one of the bindings used by Humanoid animations?</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.RemapAnimationBindingsTool.CopyAll">
            <summary>Copies all of the <see cref="F:Animancer.Editor.Tools.RemapAnimationBindingsTool._NewBindingPaths"/> to the system clipboard.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.RemapAnimationBindingsTool.PasteAll">
            <summary>Pastes the string from the system clipboard into the <see cref="F:Animancer.Editor.Tools.RemapAnimationBindingsTool._NewBindingPaths"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.Tools.RemapSpriteAnimationTool">
            <summary>[Editor-Only] [Pro-Only] 
            An <see cref="T:Animancer.Editor.Tools.AnimationModifierTool"/> for changing which
            <see cref="T:UnityEngine.Sprite"/>s an <see cref="T:UnityEngine.AnimationClip"/> uses.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/tools/remap-sprite-animation">
            Remap Sprite Animation</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Tools/RemapSpriteAnimationTool
            
        </member>
        <member name="P:Animancer.Editor.Tools.RemapSpriteAnimationTool.DisplayOrder">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.RemapSpriteAnimationTool.Name">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.RemapSpriteAnimationTool.HelpURL">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.RemapSpriteAnimationTool.Instructions">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.RemapSpriteAnimationTool.OnEnable(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.RemapSpriteAnimationTool.OnAnimationChanged">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.RemapSpriteAnimationTool.DoBodyGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.RemapSpriteAnimationTool.GatherOldSprites">
            <summary>Gathers the <see cref="F:Animancer.Editor.Tools.RemapSpriteAnimationTool._OldSprites"/> from the <see cref="P:Animancer.Editor.Tools.AnimationModifierTool.Animation"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.Tools.RenameSpritesTool">
            <summary>[Editor-Only] [Pro-Only] A <see cref="T:Animancer.Editor.Tools.SpriteModifierTool"/> for bulk-renaming <see cref="T:UnityEngine.Sprite"/>s.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/tools/rename-sprites">
            Rename Sprites</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Tools/RenameSpritesTool
            
        </member>
        <member name="P:Animancer.Editor.Tools.RenameSpritesTool.DisplayOrder">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.RenameSpritesTool.Name">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.RenameSpritesTool.HelpURL">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Tools.RenameSpritesTool.Instructions">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.RenameSpritesTool.OnEnable(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.RenameSpritesTool.OnSelectionChanged">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.RenameSpritesTool.UpdateNames">
            <summary>Refreshes the <see cref="F:Animancer.Editor.Tools.RenameSpritesTool._GeneratedNames"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.RenameSpritesTool.DoBodyGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.Tools.SpriteDataEditor">
            <summary>A wrapper around the '2D Sprite' package features for editing Sprite data.</summary>
        </member>
        <member name="P:Animancer.Editor.Tools.SpriteDataEditor.SpriteCount">
            <summary>The number of sprites in the target data.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.GetName(System.Int32)">
            <summary>Returns the name of the sprite at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.SetName(System.Int32,System.String)">
            <summary>Sets the name of the sprite at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.GetRect(System.Int32)">
            <summary>Returns the rect of the sprite at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.SetRect(System.Int32,UnityEngine.Rect)">
            <summary>Sets the rect of the sprite at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.GetPivot(System.Int32)">
            <summary>Returns the pivot of the sprite at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.SetPivot(System.Int32,UnityEngine.Vector2)">
            <summary>Sets the pivot of the sprite at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.GetAlignment(System.Int32)">
            <summary>Returns the alignment of the sprite at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.SetAlignment(System.Int32,UnityEngine.SpriteAlignment)">
            <summary>Sets the alignment of the sprite at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.GetBorder(System.Int32)">
            <summary>Returns the border of the sprite at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.SetBorder(System.Int32,UnityEngine.Vector4)">
            <summary>Sets the border of the sprite at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.#ctor(UnityEditor.TextureImporter)">
            <summary>Creates a new <see cref="T:Animancer.Editor.Tools.SpriteDataEditor"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.IndexOf(UnityEngine.Sprite)">
            <summary>Tries to find the index of the data matching the `sprite`.</summary>
            <remarks>
            Returns -1 if there is no data matching the <see cref="P:UnityEngine.Object.name"/>.
            <para></para>
            Returns -2 if there is more than one data matching the <see cref="P:UnityEngine.Object.name"/> but no
            <see cref="P:UnityEngine.Sprite.rect"/> match.
            </remarks>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.ValidateBounds(System.Int32,UnityEngine.Sprite)">
            <summary>Logs an error and returns false if the data at the specified `index` is out of the texture bounds.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteDataEditor.Apply">
            <summary>Applies any modifications to the target asset.</summary>
        </member>
        <member name="T:Animancer.Editor.Tools.SpriteModifierTool">
            <summary>[Editor-Only] [Pro-Only]
            A base <see cref="T:Animancer.Editor.Tools.AnimancerToolsWindow.Tool"/> for modifying <see cref="T:UnityEngine.Sprite"/>s.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/tools">
            Animancer Tools</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Tools/SpriteModifierTool
            
        </member>
        <member name="P:Animancer.Editor.Tools.SpriteModifierTool.Sprites">
            <summary>The currently selected <see cref="T:UnityEngine.Sprite"/>s.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteModifierTool.OnSelectionChanged">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteModifierTool.DoBodyGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteModifierTool.GatherSelectedSprites(System.Collections.Generic.List{UnityEngine.Sprite})">
            <summary>
            Adds all <see cref="T:UnityEngine.Sprite"/>s in the <see cref="P:UnityEditor.Selection.objects"/> or their sub-assets to the
            list of `sprites`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteModifierTool.LoadAllSpritesInTexture(UnityEngine.Texture2D)">
            <summary>Returns all the <see cref="T:UnityEngine.Sprite"/> sub-assets of the `texture`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteModifierTool.LoadAllSpritesAtPath(System.String)">
            <summary>Returns all the <see cref="T:UnityEngine.Sprite"/> assets at the `path`.</summary>
        </member>
        <member name="M:Animancer.Editor.Tools.SpriteModifierTool.NaturalCompare(UnityEngine.Object,UnityEngine.Object)">
            <summary>Calls <see cref="M:UnityEditor.EditorUtility.NaturalCompare(System.String,System.String)"/> on the <see cref="P:UnityEngine.Object.name"/>s.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerEditorUtilities">
            <summary>[Editor-Only] Various utilities used throughout Animancer.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerEditorUtilities
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.IsNaN(UnityEngine.Vector2)">
            <summary>[Animancer Extension] [Editor-Only] Is the <see cref="F:UnityEngine.Vector2.x"/> or <see cref="F:UnityEngine.Vector2.y"/> NaN?</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.IsNaN(UnityEngine.Vector3)">
            <summary>[Animancer Extension] [Editor-Only] Is the <see cref="F:UnityEngine.Vector3.x"/>, <see cref="F:UnityEngine.Vector3.y"/>, or <see cref="F:UnityEngine.Vector3.z"/> NaN?</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.LerpUnclampedX(UnityEngine.Rect,System.Single)">
            <summary>Returns the value of `t` linearly interpolated along the X axis of the `rect`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.InverseLerpUnclampedX(UnityEngine.Rect,System.Single)">
            <summary>Returns the value of `t` inverse linearly interpolated along the X axis of the `rect`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.FindAssetOfType``1">
            <summary>Finds an asset of the specified type anywhere in the project.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.FindOrCreate``1(``0@,UnityEngine.HideFlags)">
            <summary>Finds or creates an instance of <typeparamref name="T"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerEditorUtilities.PlayModeState">
            <summary>The most recent <see cref="T:UnityEditor.PlayModeStateChange"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerEditorUtilities.IsChangingPlayMode">
            <summary>Is the Unity Editor is currently changing between Play Mode and Edit Mode?</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.DeleteSubAsset(UnityEngine.Object)">
            <summary>Deletes the specified `subAsset`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.CalculateBounds(UnityEngine.Transform)">
            <summary>Calculates the overall bounds of all renderers under the `transform`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.SetCount``1(System.Collections.Generic.List{``0},System.Int32)">
            <summary>Adds default items or removes items to make the <see cref="P:System.Collections.Generic.List`1.Count"/> equal to the `count`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.RemoveMissingAndDuplicates(System.Collections.Generic.List{UnityEngine.GameObject}@)">
            <summary>
            Removes any items from the `list` that are <c>null</c> and items that appear multiple times.
            Returns true if the `list` was modified.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.InstantiateDerivedTypes``1(System.Collections.Generic.List{``0}@)">
            <summary>
            Removes any <c>null</c> items and ensures that it contains
            an instance of each type derived from <typeparamref name="T"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.IndexOfType``1(System.Collections.Generic.IList{``0},System.Type)">
            <summary>Finds the index of the first item with the specified `type`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.AddFadeFunction(UnityEditor.GenericMenu,System.String,System.Boolean,Animancer.AnimancerNode,System.Action{System.Single})">
            <summary>
            Adds a menu function which passes the result of <see cref="M:Animancer.Editor.AnimancerEditorUtilities.CalculateEditorFadeDuration(Animancer.AnimancerNode,System.Single)"/> into `startFade`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.CalculateEditorFadeDuration(Animancer.AnimancerNode,System.Single)">
            <summary>[Animancer Extension] [Editor-Only]
            Returns the duration of the `node`s current fade (if any), otherwise returns the `defaultDuration`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.AddDocumentationLink(UnityEditor.GenericMenu,System.String,System.String)">
            <summary>
            Adds a menu function to open a web page. If the `linkSuffix` starts with a '/' then it will be relative to
            the <see cref="F:Animancer.Strings.DocsURLs.Documentation"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.ValidateEditable(UnityEditor.MenuCommand)">
            <summary>Is the <see cref="F:UnityEditor.MenuCommand.context"/> editable?</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.ToggleLooping(UnityEditor.MenuCommand)">
            <summary>Toggles the <see cref="P:UnityEngine.Motion.isLooping"/> flag between true and false.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.SetLooping(UnityEngine.AnimationClip,System.Boolean)">
            <summary>Sets the <see cref="P:UnityEngine.Motion.isLooping"/> flag.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.ToggleLegacy(UnityEditor.MenuCommand)">
            <summary>Swaps the <see cref="P:UnityEngine.AnimationClip.legacy"/> flag between true and false.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerEditorUtilities.RestoreBindPose(UnityEditor.MenuCommand)">
            <summary>Calls <see cref="M:UnityEngine.Animator.Rebind"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerSettingsInternal">
            <summary>[Editor-Only] Persistent settings used by Animancer.</summary>
            <remarks>
            This asset automatically creates itself when first accessed.
            <para></para>
            The default location is <em>Packages/com.kybernetik.animancer/Code/Editor</em>, but you can freely move it
            (and the whole Animancer folder) anywhere in your project.
            <para></para>
            These settings can also be accessed via the Settings in the <see cref="T:Animancer.Editor.Tools.AnimancerToolsWindow"/>
            (<c>Window/Animation/Animancer Tools</c>).
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerSettings
            
        </member>
        <member name="P:Animancer.Editor.AnimancerSettingsInternal.Instance">
            <summary>
            Loads an existing <see cref="T:Animancer.Editor.AnimancerSettingsInternal"/> if there is one anywhere in your project.
            Otherwise, creates a new one and saves it in the Assets folder.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerSettingsInternal.FindExistingInstance">
            <summary>Finds an existing instance of this asset anywhere in the project.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerSettingsInternal.SerializedObject">
            <summary>The <see cref="T:UnityEditor.SerializedProperty"/> representing the <see cref="P:Animancer.Editor.AnimancerSettingsInternal.Instance"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerSettingsInternal.GetSerializedProperty(System.Int32,System.String@,System.String)">
            <summary>Returns a <see cref="T:UnityEditor.SerializedProperty"/> relative to the data at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerSettingsInternal.GetOrCreateData``1">
            <summary>Returns a stored item of the specified type or creates a new one if necessary.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerSettingsInternal.SetDirty">
            <summary>Calls <see cref="M:UnityEditor.EditorUtility.SetDirty(UnityEngine.Object)"/> on the <see cref="P:Animancer.Editor.AnimancerSettingsInternal.Instance"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerSettingsInternal.OnEnable">
            <summary>
            Ensures that there is an instance of each class derived from <see cref="T:Animancer.Editor.AnimancerSettingsGroup"/>.
            </summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerSettingsInternal.Editor">
            <summary>A custom Inspector for <see cref="T:Animancer.Editor.AnimancerSettingsInternal"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerSettingsInternal.Editor.OnEnable">
            <summary>Called when this object is first loaded.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerSettingsInternal.Editor.OnInspectorGUI">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.AnimancerSettingsInternal.Editor.HideNextInfo">
            <summary>
            If <c>true</c>, the next <see cref="M:Animancer.Editor.AnimancerSettingsInternal.Editor.OnInspectorGUI"/> will skip drawing the info panel.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerSettingsInternal.Editor.DoHeading(System.String)">
            <summary>Draws a heading label.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerSettingsInternal.Editor.CreateSettingsProvider">
            <summary>Creates the Project Settings page.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerSettingsGroup`1">
            <summary>[Editor-Only] A static reference to a persistent setting stored in <see cref="T:Animancer.Editor.AnimancerSettingsInternal"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerSettingsGroup_1
        </member>
        <member name="P:Animancer.Editor.AnimancerSettingsGroup`1.Instance">
            <summary>Gets or creates a <typeparamref name="T"/> in the <see cref="T:Animancer.Editor.AnimancerSettingsInternal"/> asset.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerSettingsGroup">
            <summary>Base class for groups of fields that can be serialized inside <see cref="T:Animancer.Editor.AnimancerSettingsInternal"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerSettingsGroup
        </member>
        <member name="P:Animancer.Editor.AnimancerSettingsGroup.DisplayName">
            <summary>The user-firendly name to display in the Inspector.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerSettingsGroup.Index">
            <summary>The index to display this data at in the Inspector.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerSettingsGroup.SetDataIndex(System.Int32)">
            <summary>Sets the index used to find <see cref="T:UnityEditor.SerializedProperty"/> instances for this group.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerSettingsGroup.GetSerializedProperty(System.String)">
            <summary>Returns a <see cref="T:UnityEditor.SerializedProperty"/> relative to the base of this group.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerSettingsGroup.DoPropertyField(System.String)">
            <summary>
            Draws a <see cref="M:UnityEditor.EditorGUILayout.PropertyField(UnityEditor.SerializedProperty,UnityEngine.GUILayoutOption[])"/> for a
            property in this group.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerSettingsGroup.CompareTo(Animancer.Editor.AnimancerSettingsGroup)">
            <summary>Compares the <see cref="P:Animancer.Editor.AnimancerSettingsGroup.Index"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimationType">
            <summary>[Editor-Only] The general type of object an <see cref="T:UnityEngine.AnimationClip"/> can animate.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimationType
        </member>
        <member name="F:Animancer.Editor.AnimationType.None">
            <summary>Unable to determine a type.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimationType.Humanoid">
            <summary>A Humanoid rig.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimationType.Generic">
            <summary>A Generic rig.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimationType.Sprite">
            <summary>A <see cref="F:Animancer.Editor.AnimationType.Generic"/> rig which only animates a <see cref="P:UnityEngine.SpriteRenderer.sprite"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimationBindings">
            <summary>[Editor-Only]
            Various utility functions relating to the properties animated by an <see cref="T:UnityEngine.AnimationClip"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimationBindings
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.GetAnimationType(UnityEngine.AnimationClip)">
            <summary>Determines the <see cref="T:Animancer.Editor.AnimationType"/> of the specified `clip`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.GetAnimationType(UnityEngine.Animator)">
            <summary>Determines the <see cref="T:Animancer.Editor.AnimationType"/> of the specified `animator`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.GetAnimationType(UnityEngine.GameObject)">
            <summary>Determines the <see cref="T:Animancer.Editor.AnimationType"/> of the specified `gameObject`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.CanGatherBindings">
            <summary>No more than one set of bindings should be gathered per frame.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.GetBindings(UnityEngine.GameObject,System.Boolean)">
            <summary>Returns a cached <see cref="T:Animancer.Editor.AnimationBindings.BindingData"/> representing the specified `gameObject`.</summary>
            <remarks>Note that the cache is cleared by <see cref="E:UnityEditor.EditorApplication.hierarchyChanged"/>.</remarks>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.GetBindings(UnityEngine.AnimationClip)">
            <summary>Returns a cached array of all properties animated by the specified `clip`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.OnPostprocessAnimation(UnityEngine.GameObject,UnityEngine.AnimationClip)">
            <summary>Called when Unity imports an animation.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.OnAnimationChanged(UnityEngine.AnimationClip)">
            <summary>Clears any cached values relating to the `clip` since they may no longer be correct.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.ClearCache">
            <summary>Clears all cached values in this class.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimationBindings.BindingData">
            <summary>
            A collection of data about the properties on a <see cref="T:UnityEngine.GameObject"/>
            and its children which can be animated and the relationships between those properties
            and the properties that individual <see cref="T:UnityEngine.AnimationClip"/>s are trying to animate.
            </summary>
        </member>
        <member name="F:Animancer.Editor.AnimationBindings.BindingData.GameObject">
            <summary>The target object that this data represents.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.BindingData.#ctor(UnityEngine.GameObject)">
            <summary>Creates a new <see cref="T:Animancer.Editor.AnimationBindings.BindingData"/> representing the specified `gameObject`.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimationBindings.BindingData.ObjectType">
            <summary>The cached <see cref="T:Animancer.Editor.AnimationType"/> of the <see cref="F:Animancer.Editor.AnimationBindings.BindingData.GameObject"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimationBindings.BindingData.ObjectBindings">
            <summary>The cached properties of the <see cref="F:Animancer.Editor.AnimationBindings.BindingData.GameObject"/> and its children which can be animated.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimationBindings.BindingData.ObjectTransformBindings">
            <summary>
            The <see cref="F:UnityEditor.EditorCurveBinding.path"/> of all <see cref="T:UnityEngine.Transform"/> bindings in
            <see cref="P:Animancer.Editor.AnimationBindings.BindingData.ObjectBindings"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.BindingData.GetMatchType(UnityEngine.Animator,Animancer.AnimancerState,System.Text.StringBuilder,System.Boolean)">
            <summary>
            Determines the <see cref="T:Animancer.Editor.AnimationBindings.MatchType"/> representing the properties animated by the `state`
            in comparison to the properties that actually exist on the target <see cref="F:Animancer.Editor.AnimationBindings.BindingData.GameObject"/>
            and its children.
            <para></para>
            Also compiles a `message` explaining the differences if that parameter is not null.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.BindingData.GetMatchType(UnityEngine.AnimationClip,System.Text.StringBuilder,System.Collections.Generic.Dictionary{UnityEditor.EditorCurveBinding,System.Boolean},System.Int32@,System.Boolean)">
            <summary>
            Determines the <see cref="T:Animancer.Editor.AnimationBindings.MatchType"/> representing the properties animated by the `clip`
            in comparison to the properties that actually exist on the target <see cref="F:Animancer.Editor.AnimationBindings.BindingData.GameObject"/>
            and its children.
            <para></para>
            Also compiles a `message` explaining the differences if that parameter is not null.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.BindingData.LogIssues(Animancer.AnimancerState,Animancer.Editor.AnimationBindings.MatchType)">
            <summary>
            Logs a description of the issues found when comparing the properties animated by the `state` to the
            properties that actually exist on the target <see cref="F:Animancer.Editor.AnimationBindings.BindingData.GameObject"/> and its children.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.BindingData.OnAnimationChanged(UnityEngine.AnimationClip)">
            <summary>[Internal] Removes any cached values relating to the `clip`.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimationBindings.MatchType">
            <summary>
            A summary of the compatability between the properties animated by an <see cref="T:UnityEngine.AnimationClip"/>
            and the properties that actually exist on a particular <see cref="T:UnityEngine.GameObject"/> (and its children).
            </summary>
        </member>
        <member name="F:Animancer.Editor.AnimationBindings.MatchType.Correct">
            <summary>All properties exist.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimationBindings.MatchType.Unknown">
            <summary>Not yet checked.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimationBindings.MatchType.Empty">
            <summary>The <see cref="T:UnityEngine.AnimationClip"/> does not animate anything.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimationBindings.MatchType.Warning">
            <summary>Some of the animated properties do not exist on the object.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimationBindings.MatchType.Error">
            <summary>None of the animated properties exist on the object.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.DoBindingMatchGUI(UnityEngine.Rect@,Animancer.AnimancerState)">
            <summary>
            Draws an icon indicating the <see cref="T:Animancer.Editor.AnimationBindings.MatchType"/> of the `state`
            compared to the object it is being played on.
            <para></para>
            Clicking the icon calls <see cref="M:Animancer.Editor.AnimationBindings.BindingData.LogIssues(Animancer.AnimancerState,Animancer.Editor.AnimationBindings.MatchType)"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.GetIcon(Animancer.Editor.AnimationBindings.MatchType)">
            <summary>Get an icon = corresponding to the specified <see cref="T:Animancer.Editor.AnimationBindings.MatchType"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationBindings.AssertIcons">
            <summary>A unit test to make sure that the icons are properly loaded.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimationEventCache">
            <summary>[Editor-Only] Caches <see cref="P:UnityEngine.AnimationClip.events"/> to reduce garbage allocations.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimationEventCache
            
        </member>
        <member name="M:Animancer.Editor.AnimationEventCache.GetCachedEvents(UnityEngine.AnimationClip)">
            <summary>
            Returns the <see cref="P:UnityEngine.AnimationClip.events"/> and caches the result to avoid allocating more memory with
            each subsequent call.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimationEventCache.Clear">
            <summary>Clears the cache.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimationEventCache.Remove(UnityEngine.AnimationClip)">
            <summary>Removes the `clip` from the cache so its events will be retrieved again next time.</summary>
        </member>
        <member name="T:Animancer.Editor.AttributeCache`1">
            <summary>[Editor-Only] A cache to optimize repeated attribute access.</summary>
            <remarks>
            If <typeparamref name="TAttribute"/> implements <see cref="T:Animancer.IInitializable`1"/> for <see cref="T:System.Reflection.MemberInfo"/>,
            its <see cref="M:Animancer.IInitializable`1.Initialize(`0)"/> method will be called automatically.
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AttributeCache_1
        </member>
        <member name="M:Animancer.Editor.AttributeCache`1.GetAttribute(System.Reflection.MemberInfo)">
            <summary>
            Returns the <typeparamref name="TAttribute"/> attribute on the specified `member` (if there is one).
            </summary>
        </member>
        <member name="M:Animancer.Editor.AttributeCache`1.GetAttribute(System.Type)">
            <summary>
            Returns the <typeparamref name="TAttribute"/> attribute (if any)
            on the specified `type` or its <see cref="P:System.Type.BaseType"/> (recursively).
            </summary>
        </member>
        <member name="M:Animancer.Editor.AttributeCache`1.FindAttribute(System.Reflection.FieldInfo)">
            <summary>
            Returns the <typeparamref name="TAttribute"/> attribute on the specified `field` or its
            <see cref="P:System.Reflection.FieldInfo.FieldType"/> or <see cref="P:System.Reflection.MemberInfo.DeclaringType"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AttributeCache`1.FindAttribute(UnityEditor.SerializedProperty)">
            <summary>[Editor-Only]
            Returns the <typeparamref name="TAttribute"/> attribute on the underlying field
            of the `property` or its <see cref="P:System.Reflection.FieldInfo.FieldType"/> or
            <see cref="P:System.Reflection.MemberInfo.DeclaringType"/> or any of the parent properties
            or the type of the <see cref="P:UnityEditor.SerializedObject.targetObject"/>.
            </summary>
        </member>
        <member name="T:Animancer.Editor.ConversionCache`2">
            <summary>[Editor-Only]
            A simple system for converting objects and storing the results so they can be reused to minimise the need for
            garbage collection, particularly for string construction.
            </summary>
            <remarks>This class doesn't use any Editor-Only functionality, but it's unlikely to be useful at runtime.</remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ConversionCache_2
            https://kybernetik.com.au/inspector-gadgets/api/InspectorGadgets.Editor/ConversionCache_2
            
        </member>
        <member name="M:Animancer.Editor.ConversionCache`2.#ctor(System.Func{`0,`1})">
            <summary>
            Creates a new <see cref="T:Animancer.Editor.ConversionCache`2"/> which uses the specified delegate to convert values.
            </summary>
        </member>
        <member name="M:Animancer.Editor.ConversionCache`2.Convert(`0)">
            <summary>
            If a value has already been cached for the specified `key`, return it. Otherwise create a new one using
            the delegate provided in the constructor and cache it.
            <para></para>
            If the `key` is <c>null</c>, this method returns the default <typeparamref name="TValue"/>.
            </summary>
            <remarks>This method also periodically removes values that have not been used recently.</remarks>
        </member>
        <member name="T:Animancer.Editor.ConversionCache">
            <summary>[Editor-Only] Utilities for <see cref="T:Animancer.Editor.ConversionCache`2"/>.</summary>
            <remarks>This class doesn't use any Editor-Only functionality, but it's unlikely to be useful at runtime.</remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ConversionCache
            https://kybernetik.com.au/inspector-gadgets/api/InspectorGadgets.Editor/ConversionCache
            
        </member>
        <member name="M:Animancer.Editor.ConversionCache.CreateWidthCache(UnityEngine.GUIStyle)">
            <summary>
            Creates a <see cref="T:Animancer.Editor.ConversionCache`2"/> for calculating the GUI width occupied by text using
            the specified `style`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.ConversionCache.ToStringCached(System.Single)">
            <summary>[Animancer Extension]
            Calls <see cref="M:System.Single.ToString(System.String)"/> using <c>"g"</c> as the format and caches the result.
            </summary>
        </member>
        <member name="T:Animancer.Editor.DefaultValues">
            <summary>[Editor-Only] Utilities for using <see cref="T:Animancer.DefaultValueAttribute"/>s.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/DefaultValues
        </member>
        <member name="M:Animancer.Editor.DefaultValues.SetToDefault``1(``0@,UnityEditor.SerializedProperty)">
            <summary>[Editor-Only]
            If the field represented by the `property` has a <see cref="T:Animancer.DefaultValueAttribute"/>,
            this method sets the `value` to its <see cref="P:Animancer.DefaultValueAttribute.Primary"/> value.
            If it was already at the value, it sets it to the <see cref="P:Animancer.DefaultValueAttribute.Secondary"/>
            value instead. And if the field has no attribute, it uses the default for the type.
            </summary>
        </member>
        <member name="M:Animancer.Editor.DefaultValues.SetToDefault``1(``0@,System.Reflection.FieldInfo)">
            <summary>[Editor-Only]
            If the field represented by the `property` has a <see cref="T:Animancer.DefaultValueAttribute"/>,
            this method sets the `value` to its <see cref="P:Animancer.DefaultValueAttribute.Primary"/> value.
            If it was already at the value, it sets it to the <see cref="P:Animancer.DefaultValueAttribute.Secondary"/>
            value instead. And if the field has no attribute, it uses the default for the type.
            </summary>
        </member>
        <member name="M:Animancer.Editor.DefaultValues.SetToDefault``1(Animancer.DefaultValueAttribute,``0@)">
            <summary>[Editor-Only]
            Sets the `value` equal to the <see cref="P:Animancer.DefaultValueAttribute.Primary"/> value.
            If it was already at the value, it sets it equal to the <see cref="P:Animancer.DefaultValueAttribute.Secondary"/>
            value instead.
            </summary>
        </member>
        <member name="M:Animancer.Editor.DefaultValues.SetToDefault``1(``0@,``0,``0)">
            <summary>[Editor-Only]
            Sets the `value` equal to the `primary` value.
            If it was already at the value, it sets it equal to the `secondary` value instead.
            </summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerGUI">
            <summary>[Editor-Only] Various GUI utilities used throughout Animancer.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerGUI
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerGUI
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.WarningFieldColor">
            <summary>The highlight color used for fields showing a warning.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.ErrorFieldColor">
            <summary>The highlight color used for fields showing an error.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.Grey(System.Single,System.Single)">
            <summary>Returns a color with uniform Red, Green, and Blue values.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.DontExpandWidth">
            <summary><see cref="M:UnityEngine.GUILayout.ExpandWidth(System.Boolean)"/> set to false.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerGUI.LineHeight">
            <summary>Returns <see cref="P:UnityEditor.EditorGUIUtility.singleLineHeight"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.CalculateHeight(System.Int32)">
            <summary>
            Calculates the number of vertical pixels required to draw the specified `lineCount` using the
            <see cref="P:Animancer.Editor.AnimancerGUI.LineHeight"/> and <see cref="P:Animancer.Editor.AnimancerGUI.StandardSpacing"/>.
            </summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerGUI.StandardSpacing">
            <summary>Returns <see cref="P:UnityEditor.EditorGUIUtility.standardVerticalSpacing"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerGUI.IndentSize">
            <summary>
            The number of pixels of indentation for each <see cref="P:UnityEditor.EditorGUI.indentLevel"/> increment.
            </summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerGUI.ToggleWidth">
            <summary>The width of a standard <see cref="P:UnityEngine.GUISkin.toggle"/> with no label.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerGUI.TextColor">
            <summary>The color of the standard label text.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerGUI.MiniButtonStyle">
            <summary>A more compact <see cref="P:UnityEditor.EditorStyles.miniButton"/> with a fixed size as a tiny box.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerGUI.NoPaddingButtonStyle">
            <summary><see cref="P:Animancer.Editor.AnimancerGUI.MiniButtonStyle"/> with no <see cref="P:UnityEngine.GUIStyle.padding"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerGUI.RightLabelStyle">
            <summary><see cref="P:UnityEditor.EditorStyles.label"/> using <see cref="F:UnityEngine.TextAnchor.MiddleRight"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerGUI.MiniButtonNoPadding">
            <summary>A more compact <see cref="P:UnityEditor.EditorStyles.miniButton"/> with no padding for its content.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerGUI.Commands">
            <summary>Constants used by <see cref="P:UnityEngine.Event.commandName"/>.</summary>
            <remarks>Key combinations are listed for Windows. Other platforms may differ.</remarks>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.Commands.SoftDelete">
            <summary><see cref="F:UnityEngine.KeyCode.Delete"/></summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.Commands.Delete">
            <summary><see cref="F:UnityEngine.KeyCode.LeftControl"/> + <see cref="F:UnityEngine.KeyCode.Delete"/></summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.Commands.Copy">
            <summary><see cref="F:UnityEngine.KeyCode.LeftControl"/> + <see cref="F:UnityEngine.KeyCode.C"/></summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.Commands.Cut">
            <summary><see cref="F:UnityEngine.KeyCode.LeftControl"/> + <see cref="F:UnityEngine.KeyCode.X"/></summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.Commands.Paste">
            <summary><see cref="F:UnityEngine.KeyCode.LeftControl"/> + <see cref="F:UnityEngine.KeyCode.V"/></summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.Commands.Duplicate">
            <summary><see cref="F:UnityEngine.KeyCode.LeftControl"/> + <see cref="F:UnityEngine.KeyCode.D"/></summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.Commands.SelectAll">
            <summary><see cref="F:UnityEngine.KeyCode.LeftControl"/> + <see cref="F:UnityEngine.KeyCode.A"/></summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.Commands.FrameSelected">
            <summary><see cref="F:UnityEngine.KeyCode.F"/></summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.Commands.FrameSelectedWithLock">
            <summary><see cref="F:UnityEngine.KeyCode.LeftShift"/> + <see cref="F:UnityEngine.KeyCode.F"/></summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.Commands.Find">
            <summary><see cref="F:UnityEngine.KeyCode.LeftControl"/> + <see cref="F:UnityEngine.KeyCode.F"/></summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerGUI.GuiOffset">
            <summary>The offset currently applied to the GUI by <see cref="M:UnityEngine.GUI.BeginGroup(UnityEngine.Rect)"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.RepaintEverything">
            <summary>Calls <see cref="M:UnityEditorInternal.InternalEditorUtility.RepaintAllViews"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.LayoutRect(System.Single)">
            <summary><see cref="M:UnityEngine.GUILayoutUtility.GetRect(System.Single,System.Single)"/></summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.LayoutRect(System.Single,UnityEngine.GUIStyle)">
            <summary><see cref="M:UnityEngine.GUILayoutUtility.GetRect(System.Single,System.Single,UnityEngine.GUIStyle)"/></summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerGUI.SpacingMode">
            <summary>Indicates where <see cref="M:Animancer.Editor.AnimancerGUI.LayoutSingleLineRect(Animancer.Editor.AnimancerGUI.SpacingMode)"/> should add the <see cref="P:Animancer.Editor.AnimancerGUI.StandardSpacing"/>.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.SpacingMode.None">
            <summary>No extra space.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.SpacingMode.Before">
            <summary>Add extra space before the new area.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.SpacingMode.After">
            <summary>Add extra space after the new area.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI.SpacingMode.BeforeAndAfter">
            <summary>Add extra space before and after the new area.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.LayoutRect(System.Single,Animancer.Editor.AnimancerGUI.SpacingMode)">
            <summary>
            Uses <see cref="M:UnityEngine.GUILayoutUtility.GetRect(System.Single,System.Single)"/> to get a <see cref="T:UnityEngine.Rect"/> with the specified
            `height` and the <see cref="P:Animancer.Editor.AnimancerGUI.StandardSpacing"/> added according to the specified `spacing`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.LayoutSingleLineRect(Animancer.Editor.AnimancerGUI.SpacingMode)">
            <summary>
            Uses <see cref="M:UnityEngine.GUILayoutUtility.GetRect(System.Single,System.Single)"/> to get a <see cref="T:UnityEngine.Rect"/> occupying a single
            standard line with the <see cref="P:Animancer.Editor.AnimancerGUI.StandardSpacing"/> added according to the specified `spacing`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.NextVerticalArea(UnityEngine.Rect@)">
            <summary>
            If the <see cref="P:UnityEngine.Rect.height"/> is positive, this method moves the <see cref="P:UnityEngine.Rect.y"/> by that amount and
            adds the <see cref="P:Animancer.Editor.AnimancerGUI.StandardSpacing"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.StealFromLeft(UnityEngine.Rect@,System.Single,System.Single)">
            <summary>
            Subtracts the `width` from the left side of the `area`
            and returns a new <see cref="T:UnityEngine.Rect"/> occupying the removed section.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.StealFromRight(UnityEngine.Rect@,System.Single,System.Single)">
            <summary>
            Subtracts the `width` from the right side of the `area`
            and returns a new <see cref="T:UnityEngine.Rect"/> occupying the removed section.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.StealFromTop(UnityEngine.Rect@,System.Single,System.Single)">
            <summary>
            Subtracts the `height` from the top side of the `area`
            and returns a new <see cref="T:UnityEngine.Rect"/> occupying the removed section.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.StealLineFromTop(UnityEngine.Rect@)">
            <summary>
            Subtracts the <see cref="P:Animancer.Editor.AnimancerGUI.LineHeight"/> from the top side of the `area`
            and returns a new <see cref="T:UnityEngine.Rect"/> occupying the removed section.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.Expand(UnityEngine.Rect,System.Single)">
            <summary>
            Returns a copy of the `rect` expanded by the specified `amount`
            (or contracted if negative).
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.Expand(UnityEngine.Rect,System.Single,System.Single)">
            <summary>
            Returns a copy of the `rect` expanded by the specified amounts
            on each axis (or contracted if negative).
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.Encapsulate(UnityEngine.Rect,UnityEngine.Rect)">
            <summary>Returns a copy of the `rect` expanded to include the `other`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.SplitHorizontally(UnityEngine.Rect,System.String,System.String,System.Single@,System.Single@,UnityEngine.Rect@,UnityEngine.Rect@)">
            <summary>
            Divides the given `area` such that the fields associated with both labels will have equal space
            remaining after the labels themselves.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.CalculateWidth(UnityEngine.GUIStyle,UnityEngine.GUIContent)">
            <summary>[Animancer Extension] Calls <see cref="M:UnityEngine.GUIStyle.CalcMinMaxWidth(UnityEngine.GUIContent,System.Single@,System.Single@)"/> and returns the max width.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.CalculateWidth(UnityEngine.GUIStyle,System.String)">
            <summary>[Animancer Extension] Calls <see cref="M:UnityEngine.GUIStyle.CalcMinMaxWidth(UnityEngine.GUIContent,System.Single@,System.Single@)"/> and returns the max width.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.CalculateLabelWidth(System.String)">
            <summary>
            Calls <see cref="M:UnityEngine.GUIStyle.CalcMinMaxWidth(UnityEngine.GUIContent,System.Single@,System.Single@)"/> using <see cref="P:UnityEngine.GUISkin.label"/> and returns the max
            width. The result is cached for efficient reuse.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.ToStringCached(System.Int32)">
            <summary>Caches and returns <see cref="M:System.Int32.ToString"/> if <c>0 &lt;= value &lt; 100</c>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.BeginVerticalBox(UnityEngine.GUIStyle)">
            <summary>
            Begins a vertical layout group using the given style and decreases the
            <see cref="P:UnityEditor.EditorGUIUtility.labelWidth"/> to compensate for the indentation.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.EndVerticalBox(UnityEngine.GUIStyle)">
            <summary>
            Ends a layout group started by <see cref="M:Animancer.Editor.AnimancerGUI.BeginVerticalBox(UnityEngine.GUIStyle)"/> and restores the
            <see cref="P:UnityEditor.EditorGUIUtility.labelWidth"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.GetGUIClipRect">
            <summary>Returns the <see cref="T:UnityEngine.Rect"/> of the current <see cref="M:UnityEngine.GUI.BeginClip(UnityEngine.Rect)"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DoWeightLabel(UnityEngine.Rect@,System.Single,System.Single)">
            <summary>
            Draws a label showing the `weight` aligned to the right side of the `area` and reduces its
            <see cref="P:UnityEngine.Rect.width"/> to remove that label from its area.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.WeightToShortString(System.Single,System.Boolean@)">
            <summary>Returns a string which approximates the `weight` into no more than 3 digits.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGUI._TightLabelWidth">
            <summary>The <see cref="P:UnityEditor.EditorGUIUtility.labelWidth"/> from before <see cref="M:Animancer.Editor.AnimancerGUI.BeginTightLabel(System.String)"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.BeginTightLabel(System.String)">
            <summary>
            Stores the <see cref="P:UnityEditor.EditorGUIUtility.labelWidth"/> and changes it to the exact width of the `label`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.EndTightLabel">
            <summary>Reverts <see cref="P:UnityEditor.EditorGUIUtility.labelWidth"/> to its previous value.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.CompactMiniButton(UnityEngine.GUIContent)">
            <summary>Draws a button using <see cref="P:UnityEditor.EditorStyles.miniButton"/> and <see cref="F:Animancer.Editor.AnimancerGUI.DontExpandWidth"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.CompactMiniButton(UnityEngine.Rect,UnityEngine.GUIContent)">
            <summary>Draws a button using <see cref="P:UnityEditor.EditorStyles.miniButton"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DoLabelFoldoutFieldGUI(System.String,System.String,System.Boolean)">
            <summary>Draws a label field with a foldout.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DoLabelFoldoutFieldGUI(UnityEngine.GUIContent,UnityEngine.GUIContent,System.Boolean)">
            <summary>Draws a label field with a foldout.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DoHashedFoldoutGUI``1(UnityEngine.Rect,System.Collections.Generic.HashSet{``0},``0)">
            <summary>Draws a foldout which stores its state in a hash set.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DoObjectFieldGUI``1(UnityEngine.Rect,UnityEngine.GUIContent,``0,System.Boolean)">
            <summary>Draws an object reference field.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DoObjectFieldGUI``1(UnityEngine.Rect,System.String,``0,System.Boolean)">
            <summary>Draws an object reference field.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DoObjectFieldGUI``1(UnityEngine.GUIContent,``0,System.Boolean)">
            <summary>Draws an object reference field.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DoObjectFieldGUI``1(System.String,``0,System.Boolean)">
            <summary>Draws an object reference field.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DoDropdownObjectFieldGUI``1(UnityEngine.Rect,UnityEngine.GUIContent,System.Boolean,``0@)">
            <summary>
            Draws an object reference field with a dropdown button as its label
            and returns true if clicked.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.SetGuiChanged(System.Boolean)">
            <summary>Sets <see cref="P:UnityEngine.GUI.changed"/> if `guiChanged` is <c>true</c>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.Use(UnityEngine.Event,System.Int32,System.Boolean)">
            <summary>
            Calls <see cref="M:UnityEngine.Event.Use"/> and sets the
            <see cref="P:UnityEngine.GUI.changed"/> and <see cref="P:UnityEngine.GUIUtility.hotControl"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.TryUseMouseDown(UnityEngine.Rect,UnityEngine.Event,System.Int32)">
            <summary>
            Sets the <see cref="P:UnityEngine.GUIUtility.hotControl"/> and uses the `currentEvent`
            if the mouse position is inside the `area`.
            </summary>
            <remarks>This method is useful for handling <see cref="F:UnityEngine.EventType.MouseDown"/>.</remarks>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.TryUseMouseUp(UnityEngine.Event,System.Int32,System.Boolean)">
            <summary>
            Releases the <see cref="P:UnityEngine.GUIUtility.hotControl"/> and uses the `currentEvent` if it was the active control.
            </summary>
            <remarks>This method is useful for handling <see cref="F:UnityEngine.EventType.MouseUp"/>.</remarks>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.TryUseHotControl(UnityEngine.Event,System.Int32,System.Boolean)">
            <summary>
            Uses the `currentEvent` and sets <see cref="P:UnityEngine.GUI.changed"/>
            if the `controlID` matches the <see cref="P:UnityEngine.GUIUtility.hotControl"/>.
            </summary>
            <remarks>This method is useful for handling <see cref="F:UnityEngine.EventType.MouseDrag"/>.</remarks>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.TryUseKey(UnityEngine.Event,System.Int32,UnityEngine.KeyCode)">
            <summary>
            Uses the `currentEvent` if the `controlID` has <see cref="P:UnityEngine.GUIUtility.keyboardControl"/>.
            If a `key` is specified, other keys will be ignored.
            </summary>
            <remarks>
            This method is useful for handling
            <see cref="F:UnityEngine.EventType.KeyDown"/> and <see cref="F:UnityEngine.EventType.KeyUp"/>.
            </remarks>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.TryUseClickEvent(UnityEngine.Rect,System.Int32,System.Int32)">
            <summary>
            Returns true and uses the current event if it is
            <see cref="F:UnityEngine.EventType.MouseUp"/> inside the specified `area`.
            </summary>
            <remarks>Uses <see cref="F:UnityEngine.EventType.MouseDown"/> and <see cref="F:UnityEngine.EventType.MouseUp"/> events.</remarks>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.TryUseClickEventInLastRect(System.Int32)">
            <summary>
            Returns true and uses the current event if it is <see cref="F:UnityEngine.EventType.MouseUp"/> inside the last GUI Layout
            <see cref="T:UnityEngine.Rect"/> that was drawn.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.IsMiddleClick(UnityEngine.Event)">
            <summary>Is the `currentEvent` a Middle Click or Alt + Left Click? </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.Deselect">
            <summary>Deselects any selected IMGUI control.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DrawLine(UnityEngine.Vector2,UnityEngine.Vector2,System.Single,UnityEngine.Color)">
            <summary>Draws a line.</summary>
            <remarks>
            Use <see cref="M:Animancer.Editor.AnimancerGUI.BeginTriangles(UnityEngine.Color)"/>, <see cref="M:Animancer.Editor.AnimancerGUI.DrawLineBatched(UnityEngine.Vector2,UnityEngine.Vector2,System.Single)"/>, and <see cref="M:Animancer.Editor.AnimancerGUI.EndTriangles"/>
            if you want to draw multiple lines more efficiently.
            </remarks>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.BeginTriangles(UnityEngine.Color)">
            <summary>Sets up the rendering details for <see cref="M:Animancer.Editor.AnimancerGUI.DrawLineBatched(UnityEngine.Vector2,UnityEngine.Vector2,System.Single)"/>.</summary>
            <remarks>
            If the color doesn't work correctly, you may need to call
            <see cref="M:UnityEditor.Handles.DrawLine(UnityEngine.Vector3,UnityEngine.Vector3)"/> before this.
            </remarks>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.EndTriangles">
            <summary>Cleans up the rendering details for <see cref="M:Animancer.Editor.AnimancerGUI.DrawLineBatched(UnityEngine.Vector2,UnityEngine.Vector2,System.Single)"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DrawLineBatched(UnityEngine.Vector2,UnityEngine.Vector2,System.Single)">
            <summary>Draws a line.</summary>
            <remarks>Must be called after <see cref="M:Animancer.Editor.AnimancerGUI.BeginTriangles(UnityEngine.Color)"/> and before <see cref="M:Animancer.Editor.AnimancerGUI.EndTriangles"/>.</remarks>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DrawArrowTriangleBatched(UnityEngine.Vector2,UnityEngine.Vector2,System.Single,System.Single)">
            <summary>Draws triangular arrow.</summary>
            <remarks>Must be called after <see cref="M:Animancer.Editor.AnimancerGUI.BeginTriangles(UnityEngine.Color)"/> and before <see cref="M:Animancer.Editor.AnimancerGUI.EndTriangles"/>.</remarks>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.GetPerpendicular(UnityEngine.Vector2)">
            <summary>Returns a vector perpendicular to the given value with the same magnitude.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DrawSprite(UnityEngine.Rect,UnityEngine.Sprite)">
            <summary>Draws a `sprite` in the given `area`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.GetHashColor(System.Int32,System.Single,System.Single,System.Single)">
            <summary>Returns a colour with its hue based on the `hash`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.ReSelectCurrentObjects">
            <summary>Clears the <see cref="P:UnityEditor.Selection.objects"/> then returns it to its current state.</summary>
            <remarks>
            This forces the <see cref="T:UnityEditorInternal.ReorderableList"/> drawer to adjust to height changes which
            it unfortunately doesn't do on its own..
            </remarks>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.DoPlayPauseToggle(UnityEngine.Rect,System.Boolean,UnityEngine.GUIStyle,System.String)">
            <summary>Draws a button which toggles between play and pause icons.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.Handle``1(Animancer.Editor.DragAndDropHandler{``0},UnityEngine.Rect,UnityEditor.DragAndDropVisualMode)">
            <summary>Handles the current event.</summary>
            <remarks>See <see cref="T:Animancer.Editor.DragAndDropHandler`1"/> for a usage example.</remarks>
        </member>
        <member name="M:Animancer.Editor.AnimancerGUI.Handle``1(Animancer.Editor.DragAndDropHandler{``0},System.Collections.IEnumerable,System.Boolean,UnityEditor.DragAndDropVisualMode)">
            <summary>Handles the current event.</summary>
            <remarks>See <see cref="T:Animancer.Editor.DragAndDropHandler`1"/> for a usage example.</remarks>
        </member>
        <member name="T:Animancer.Editor.AnimancerIcons">
            <summary>[Editor-Only] Icon textures used throughout Animancer.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerIcons
        </member>
        <member name="F:Animancer.Editor.AnimancerIcons.Info">
            <summary>A standard icon for information.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerIcons.Warning">
            <summary>A standard icon for warnings.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerIcons.Error">
            <summary>A standard icon for errors.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerIcons.ScriptableObject">
            <summary>The icon for <see cref="T:UnityEngine.ScriptableObject"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerIcons.Load(System.String,UnityEngine.FilterMode)">
            <summary>Loads an icon texture.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerIcons.Load(UnityEngine.Texture@,System.String,UnityEngine.FilterMode)">
            <summary>Loads an icon `texture` if it was <c>null</c>.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerIcons.PlayIcon">
            <summary><see cref="M:Animancer.Editor.AnimancerIcons.IconContent(UnityEngine.GUIContent@,System.String,System.String)"/> for a play button.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerIcons.PauseIcon">
            <summary><see cref="M:Animancer.Editor.AnimancerIcons.IconContent(UnityEngine.GUIContent@,System.String,System.String)"/> for a pause button.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerIcons.StepBackwardIcon">
            <summary><see cref="M:Animancer.Editor.AnimancerIcons.IconContent(UnityEngine.GUIContent@,System.String,System.String)"/> for a step backward button.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerIcons.StepForwardIcon">
            <summary><see cref="M:Animancer.Editor.AnimancerIcons.IconContent(UnityEngine.GUIContent@,System.String,System.String)"/> for a step forward button.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerIcons.AddIcon(System.String)">
            <summary><see cref="M:Animancer.Editor.AnimancerIcons.IconContent(UnityEngine.GUIContent@,System.String,System.String)"/> for an add button.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerIcons.ClearIcon(System.String)">
            <summary><see cref="M:Animancer.Editor.AnimancerIcons.IconContent(UnityEngine.GUIContent@,System.String,System.String)"/> for a clear button.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerIcons.CopyIcon(System.String)">
            <summary><see cref="M:Animancer.Editor.AnimancerIcons.IconContent(UnityEngine.GUIContent@,System.String,System.String)"/> for a copy button.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerIcons.IconContent(UnityEngine.GUIContent@,System.String,System.String)">
            <summary>Calls <see cref="M:UnityEditor.EditorGUIUtility.IconContent(System.String)"/> if the `content` was null.</summary>
        </member>
        <member name="T:Animancer.Editor.ButtonGroupStyles">
            <summary>[Editor-Only] <see cref="T:UnityEngine.GUIStyle"/>s for a group of connected buttons.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ButtonGroupStyles
        </member>
        <member name="F:Animancer.Editor.ButtonGroupStyles.left">
            <summary>The style for the button on the far left.</summary>
        </member>
        <member name="F:Animancer.Editor.ButtonGroupStyles.middle">
            <summary>The style for any buttons in the middle.</summary>
        </member>
        <member name="F:Animancer.Editor.ButtonGroupStyles.right">
            <summary>The style for the button on the far right.</summary>
        </member>
        <member name="M:Animancer.Editor.ButtonGroupStyles.#ctor(UnityEngine.GUIStyle,UnityEngine.GUIStyle,UnityEngine.GUIStyle)">
            <summary>Creates a new <see cref="T:Animancer.Editor.ButtonGroupStyles"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.ButtonGroupStyles.CopyMissingStyles(Animancer.Editor.ButtonGroupStyles)">
            <summary>Copies any <c>null</c> values from another group.</summary>
        </member>
        <member name="P:Animancer.Editor.ButtonGroupStyles.MiniButton">
            <summary>The default styles for a mini button.</summary>
        </member>
        <member name="P:Animancer.Editor.ButtonGroupStyles.Button">
            <summary>The default styles for a button.</summary>
        </member>
        <member name="M:Animancer.Editor.ButtonGroupStyles.MiniToRegularButtonStyle(UnityEngine.GUIStyle)">
            <summary>Creates a copy of the `style` with the size of a regular button.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerEventDispatcherDrawer">
            <summary>[Editor-Only] A custom GUI for an <see cref="T:Animancer.AnimancerEvent.Dispatcher"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerEventDispatcherDrawer
        </member>
        <member name="M:Animancer.Editor.AnimancerEventDispatcherDrawer.DoGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.FloatGUI">
            <summary>[Editor-Only] A <see cref="T:Animancer.Editor.ICustomGUI"/> for <see cref="T:System.Single"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/FloatGUI
            
        </member>
        <member name="M:Animancer.Editor.FloatGUI.DoGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.IntGUI">
            <summary>[Editor-Only] A <see cref="T:Animancer.Editor.ICustomGUI"/> for <see cref="T:System.Int32"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/IntGUI
            
        </member>
        <member name="M:Animancer.Editor.IntGUI.DoGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.StringGUI">
            <summary>[Editor-Only] A <see cref="T:Animancer.Editor.ICustomGUI"/> for <see cref="T:System.String"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/StringGUI
            
        </member>
        <member name="M:Animancer.Editor.StringGUI.DoGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.ObjectGUI`1">
            <summary>[Editor-Only] A <see cref="T:Animancer.Editor.ICustomGUI"/> for <see cref="T:UnityEngine.Object"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ObjectGUI_1
            
        </member>
        <member name="M:Animancer.Editor.ObjectGUI`1.DoGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.ICustomGUI">
            <summary>[Editor-Only] Draws a custom GUI for an object.</summary>
            <remarks>
            Every non-abstract type implementing this interface must have at least one <see cref="T:Animancer.Editor.CustomGUIAttribute"/>.
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ICustomGUI
            
        </member>
        <member name="P:Animancer.Editor.ICustomGUI.Label">
            <summary>The optional label to draw in front of the field.</summary>
        </member>
        <member name="P:Animancer.Editor.ICustomGUI.Value">
            <summary>The target object for which this GUI will be drawn.</summary>
        </member>
        <member name="M:Animancer.Editor.ICustomGUI.DoGUI">
            <summary>Draws the GUI for the <see cref="P:Animancer.Editor.ICustomGUI.Value"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.CustomGUI`1">
            <summary>[Editor-Only] Draws a custom GUI for an object.</summary>
            <remarks>
            Every non-abstract type inheriting from this class must have at least one <see cref="T:Animancer.Editor.CustomGUIAttribute"/>.
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/CustomGUI_1
            
        </member>
        <member name="P:Animancer.Editor.CustomGUI`1.Value">
            <summary>The object for which this GUI will be drawn.</summary>
        </member>
        <member name="P:Animancer.Editor.CustomGUI`1.Animancer#Editor#ICustomGUI#Value">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.CustomGUI`1.Label">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.CustomGUI`1.DoGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.CustomGUIExtensions">
            <summary>[Editor-Only] Extension methods for <see cref="T:Animancer.Editor.ICustomGUI"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/CustomGUIExtensions
            
        </member>
        <member name="M:Animancer.Editor.CustomGUIExtensions.SetLabel(Animancer.Editor.ICustomGUI,System.String,System.String,UnityEngine.Texture)">
            <summary>Sets the <see cref="P:Animancer.Editor.ICustomGUI.Label"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.CustomGUIAttribute">
            <summary>[Editor-Only]
            Attribute for classes which implement <see cref="T:Animancer.Editor.CustomGUI`1"/> to specify the type of objects they apply to.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/CustomGUIAttribute
            
        </member>
        <member name="F:Animancer.Editor.CustomGUIAttribute.TargetType">
            <summary>The type of object which the attributed <see cref="T:Animancer.Editor.CustomGUI`1"/> class applies to.</summary>
        </member>
        <member name="M:Animancer.Editor.CustomGUIAttribute.#ctor(System.Type)">
            <summary>Creates a new <see cref="T:Animancer.Editor.CustomGUIAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.CustomGUIFactory">
            <summary>[Editor-Only] Draws a custom GUI for an object.</summary>
            <remarks>
            Every non-abstract type implementing this interface must have at least one <see cref="T:Animancer.Editor.CustomGUIAttribute"/>.
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/CustomGUIFactory
            
        </member>
        <member name="M:Animancer.Editor.CustomGUIFactory.GetOrCreateForType(System.Type)">
            <summary>Returns an existing <see cref="T:Animancer.Editor.ICustomGUI"/> for the `targetType` or creates one if necessary.</summary>
            <remarks>Returns null if the `targetType` is null or no valid <see cref="T:Animancer.Editor.ICustomGUI"/> type is found.</remarks>
        </member>
        <member name="M:Animancer.Editor.CustomGUIFactory.GetOrCreateForObject(System.Object)">
            <summary>Returns an existing <see cref="T:Animancer.Editor.ICustomGUI"/> for the `value` or creates one if necessary.</summary>
            <remarks>Returns null if the `value` is null or no valid <see cref="T:Animancer.Editor.ICustomGUI"/> type is found.</remarks>
        </member>
        <member name="M:Animancer.Editor.CustomGUIFactory.Create(System.Type)">
            <summary>Creates an <see cref="T:Animancer.Editor.ICustomGUI"/> for the `targetType`.</summary>
            <remarks>Returns null if the `value` is null or no valid <see cref="T:Animancer.Editor.ICustomGUI"/> type is found.</remarks>
        </member>
        <member name="M:Animancer.Editor.CustomGUIFactory.TryGetGUIType(System.Type,System.Type@)">
            <summary>Tries to determine the valid <see cref="T:Animancer.Editor.ICustomGUI"/> type for drawing the `target`.</summary>
        </member>
        <member name="T:Animancer.Editor.DelegateGUI">
            <summary>[Editor-Only] An <see cref="T:Animancer.Editor.ICustomGUI"/> for <see cref="T:System.MulticastDelegate"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/DelegateGUI
        </member>
        <member name="M:Animancer.Editor.DelegateGUI.CalculateHeight(System.MulticastDelegate)">
            <summary>Calculates the number of vertical pixels required to draw the specified <see cref="T:System.MulticastDelegate"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.DelegateGUI.CalculateLineCount(System.MulticastDelegate)">
            <summary>Calculates the number of lines required to draw the specified <see cref="T:System.MulticastDelegate"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.DelegateGUI.CalculateLineCount(System.Delegate[])">
            <summary>Calculates the number of lines required to draw the specified `invocationList`.</summary>
        </member>
        <member name="M:Animancer.Editor.DelegateGUI.DoGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.DelegateGUI.DoGUI(UnityEngine.Rect@,UnityEngine.GUIContent,System.MulticastDelegate,UnityEngine.GUIContent)">
            <summary>Draws the GUI for the given delegate.</summary>
        </member>
        <member name="M:Animancer.Editor.DelegateGUI.DoSingleGUI(UnityEngine.Rect@,System.Delegate)">
            <summary>Draws the target and name of the specified <see cref="T:System.Delegate"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.FadeGroupDrawer">
            <summary>[Editor-Only] A custom GUI for <see cref="T:Animancer.FadeGroup"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/FadeGroupDrawer
        </member>
        <member name="M:Animancer.Editor.FadeGroupDrawer.DoGUI">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.FadeGroupDrawer.TargetName">
            <summary>The display name of the target.</summary>
        </member>
        <member name="M:Animancer.Editor.FadeGroupDrawer.InitializeDisplayCurve(UnityEngine.AnimationCurve@)">
            <summary>Initializes the `curve` to represent the target's fade values over normalized time.</summary>
        </member>
        <member name="M:Animancer.Editor.FadeGroupDrawer.DoDetailsGUI">
            <summary>Draws the GUI for the target's fields.</summary>
        </member>
        <member name="M:Animancer.Editor.FadeGroupDrawer.DoNodeWeightGUI(Animancer.NodeWeight)">
            <summary>Draws the GUI for the given `nodeWeight`.</summary>
        </member>
        <member name="T:Animancer.Editor.LabelGUI">
            <summary>[Editor-Only]
            A default <see cref="T:Animancer.Editor.ICustomGUI"/> which simply draws the <see cref="M:System.Object.ToString"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/LabelGUI
        </member>
        <member name="M:Animancer.Editor.LabelGUI.DoGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.AnimancerLayerDrawer">
            <summary>[Editor-Only]
            A custom Inspector for an <see cref="T:Animancer.AnimancerLayer"/> which sorts and exposes some of its internal values.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerLayerDrawer
            
        </member>
        <member name="F:Animancer.Editor.AnimancerLayerDrawer.ActiveStates">
            <summary>The states in the target layer which have non-zero <see cref="P:Animancer.AnimancerNode.Weight"/>.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerLayerDrawer.InactiveStates">
            <summary>The states in the target layer which have zero <see cref="P:Animancer.AnimancerNode.Weight"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.GatherLayerEditors(Animancer.AnimancerGraph,System.Collections.Generic.List{Animancer.Editor.AnimancerLayerDrawer},System.Int32@)">
            <summary>Initializes an editor in the list for each layer in the `graph`.</summary>
            <remarks>
            The `count` indicates the number of elements actually being used.
            Spare elements are kept in the list in case they need to be used again later.
            </remarks>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.GatherStates(Animancer.AnimancerLayer)">
            <summary>
            Sets the target `layer` and sorts its states and their keys into the active/inactive lists.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.SortAndGatherKeys(System.Collections.Generic.List{Animancer.AnimancerState})">
            <summary>
            Sorts any entries that use another state as their key to come right after that state.
            See <see cref="M:Animancer.AnimancerLayer.Play(Animancer.AnimancerState,System.Single,Animancer.FadeMode)"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.DoLabelGUI(UnityEngine.Rect)">
            <summary>Draws the layer's name and weight.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerLayerDrawer.FoldoutIndent">
            <summary>The number of pixels of indentation required to fit the foldout arrow.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.DoFoldoutGUI(UnityEngine.Rect)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.DoDetailsGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.DoLayerDetailsGUI">
            <summary>
            Draws controls for <see cref="P:Animancer.AnimancerLayer.IsAdditive"/> and <see cref="F:Animancer.AnimancerLayer._Mask"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.AreAllStatesFadingOut">
            <summary>Are all the target's states fading out to 0?</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.DoStatesGUI(System.String,System.Collections.Generic.List{Animancer.AnimancerState})">
            <summary>Draws all `states` in the given list.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerLayerDrawer.StateInspectors">
            <summary>Cached Inspectors that have already been created for states.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.DoStateGUI(Animancer.AnimancerState)">
            <summary>Draws the Inspector for the given `state`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.DoChildStatesGUI(Animancer.AnimancerState)">
            <summary>Draws all child states of the `state`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.DoHeaderGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.DoGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.HandleDragAndDropToPlay(UnityEngine.Rect,System.Object)">
            <summary>
            If <see cref="T:UnityEngine.AnimationClip"/>s or <see cref="T:UnityEngine.IAnimationClipSource"/>s are dropped inside the `dropArea`,
            this method creates a new state in the `target` for each animation.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.HandleDragAndDropToPlay(UnityEngine.Object,System.Boolean)">
            <summary>Handles drag and drop events to play animations and transitions.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerLayerDrawer.PopulateContextMenu(UnityEditor.GenericMenu)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.AnimancerNodeDrawer`1">
            <summary>[Editor-Only] Draws the Inspector GUI for an <see cref="T:Animancer.AnimancerNode"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerNodeDrawer_1
            
        </member>
        <member name="F:Animancer.Editor.AnimancerNodeDrawer`1.ExtraLeftPadding">
            <summary>Extra padding for the left side of the labels.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerNodeDrawer`1.IsExpanded">
            <summary>Should the target node's details be expanded in the Inspector?</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerNodeDrawer`1.DoGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.AnimancerNodeDrawer`1.DoHeaderGUI">
            <summary>Draws the name and other details of the <see cref="P:Animancer.Editor.CustomGUI`1.Value"/> in the GUI.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerNodeDrawer`1.DoLabelGUI(UnityEngine.Rect)">
            <summary>
            Draws a field for the <see cref="P:Animancer.AnimancerState.MainObject"/> if it has one, otherwise just a simple text
            label.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerNodeDrawer`1.DoFoldoutGUI(UnityEngine.Rect)">
            <summary>Draws a foldout arrow to expand/collapse the node details.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerNodeDrawer`1.DoDetailsGUI">
            <summary>Draws the details of the <see cref="P:Animancer.Editor.CustomGUI`1.Value"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerNodeDrawer`1.DoNodeDetailsGUI">
            <summary>
            Draws controls for <see cref="P:Animancer.AnimancerState.IsPlaying"/>, <see cref="P:Animancer.AnimancerNodeBase.Speed"/>, and
            <see cref="P:Animancer.AnimancerNode.Weight"/>.
            </summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerNodeDrawer`1.AutoNormalizeSiblingWeights">
            <summary>Indicates whether changing the <see cref="P:Animancer.AnimancerNode.Weight"/> should normalize its siblings.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerNodeDrawer`1.DoFadeDetailsGUI">
            <summary>
            Draws the <see cref="P:Animancer.AnimancerNode.FadeSpeed"/>
            and <see cref="P:Animancer.AnimancerNode.TargetWeight"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerNodeDrawer`1.SetFade(System.Single,System.Single)">
            <summary>Starts a fade or changes the details of an existing one.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerNodeDrawer`1.DetailsPrefix">
            <summary>
            The menu label prefix used for details about the <see cref="P:Animancer.Editor.CustomGUI`1.Value"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerNodeDrawer`1.OpenContextMenu">
            <summary>
            Checks if the current event is a context menu click within the `clickArea` and opens a context menu with various
            functions for the <see cref="P:Animancer.Editor.CustomGUI`1.Value"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerNodeDrawer`1.PopulateContextMenu(UnityEditor.GenericMenu)">
            <summary>Adds functions relevant to the <see cref="P:Animancer.Editor.CustomGUI`1.Value"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerStateDrawer`1">
            <summary>[Editor-Only] Draws the Inspector GUI for an <see cref="T:Animancer.AnimancerState"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerStateDrawer_1
        </member>
        <member name="P:Animancer.Editor.AnimancerStateDrawer`1.AutoNormalizeSiblingWeights">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.DoLabelGUI(UnityEngine.Rect)">
            <summary>Draws the state's main label with a bar to indicate its current time.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.DoTimeHighlightBarGUI(UnityEngine.Rect,System.Single)">
            <summary>Draws a progress bar to show the animation time.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.DoTimeHighlightBarGUI(UnityEngine.Rect,System.Boolean,System.Single,System.Single,System.Single,System.Single,System.Boolean)">
            <summary>Draws a progress bar to show the animation time.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.DoDetailLinesGUI(UnityEngine.Rect,UnityEngine.Rect,System.Single)">
            <summary>Draws lines for the current weight, time, and fade destination.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.DoEventsGUI(UnityEngine.Rect)">
            <summary>Draws marks on the timeline for each event.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.DoAnimancerEventsGUI(UnityEngine.Rect)">
            <summary>Draws marks on the timeline for each Animancer Event.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.DoAnimationEventsGUI(UnityEngine.Rect)">
            <summary>Draws marks on the timeline for each Animation Event.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.DoEventTick(UnityEngine.Rect,System.Single)">
            <summary>Draws a mark on the timeline for an event.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.HandleLabelClick(UnityEngine.Rect)">
            <summary>Handles clicks on the label area.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.FadeInTarget">
            <summary>Fades in the target state (or its parent state if not directly attached to a layer).</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.ToggleExpanded(System.Boolean)">
            <summary>Toggles the target's details between expanded and collapsed.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.DoFoldoutGUI(UnityEngine.Rect)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.GetWrappedTime(System.Single@)">
            <summary>
            Gets the current <see cref="P:Animancer.AnimancerState.Time"/>.
            If the state is looping, the value is modulo by the <see cref="P:Animancer.AnimancerState.Length"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.GetWrappedTime(System.Single,System.Single,System.Boolean)">
            <summary>
            Gets the current <see cref="P:Animancer.AnimancerState.Time"/>.
            If the state is looping, the value is modulo by the <see cref="P:Animancer.AnimancerState.Length"/>.
            </summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerStateDrawer`1.MainObjectName">
            <summary>The display name of the <see cref="P:Animancer.AnimancerState.MainObject"/> field.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.DoDetailsGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.DoOptionalReferenceGUI(Animancer.Editor.FastObjectField@,System.String,System.Object)">
            <summary>Draws a `reference` if it isn't <c>null</c>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.DoTimeSliderGUI">
            <summary>Draws a slider for controlling the current <see cref="P:Animancer.AnimancerState.Time"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.PopulateContextMenu(UnityEditor.GenericMenu)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.AnimancerStateDrawer`1.AddContextMenuFunctions(UnityEditor.GenericMenu)">
            <summary>Adds the details of this state to the `menu`.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerStateDrawerColors">
            <summary>[Editor-Only] Colors used by <see cref="T:Animancer.Editor.AnimancerStateDrawer`1"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerStateDrawerColors
        </member>
        <member name="F:Animancer.Editor.AnimancerStateDrawerColors.HeaderBackgroundColor">
            <summary>Colors used by this system.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerStateDrawerColors.PlayingBarColor">
            <summary>Colors used by this system.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerStateDrawerColors.PausedBarColor">
            <summary>Colors used by this system.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerStateDrawerColors.FadeLineColor">
            <summary>Colors used by this system.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerStateDrawerColors.EventTickColor">
            <summary>Colors used by this system.</summary>
        </member>
        <member name="T:Animancer.Editor.ClipStateDrawer">
            <inheritdoc/>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ClipStateDrawer
        </member>
        <member name="P:Animancer.Editor.ClipStateDrawer.MainObjectName">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.ClipStateDrawer.AddContextMenuFunctions(UnityEditor.GenericMenu)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.ControllerStateDrawer">
            <inheritdoc/>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ControllerStateDrawer
        </member>
        <member name="P:Animancer.Editor.ControllerStateDrawer.MainObjectName">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.LinearMixerStateDrawer">
            <inheritdoc/>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/LinearMixerStateDrawer
        </member>
        <member name="M:Animancer.Editor.LinearMixerStateDrawer.AddContextMenuFunctions(UnityEditor.GenericMenu)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.ParametizedAnimancerStateDrawer`1">
            <summary>[Editor-Only] Draws the Inspector GUI for an <see cref="T:Animancer.AnimancerState"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ParametizedAnimancerStateDrawer_1
        </member>
        <member name="M:Animancer.Editor.ParametizedAnimancerStateDrawer`1.DoDetailsGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.ParametizedAnimancerStateDrawer`1.DoParametersGUI(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <summary>Draws fields for all `parameters`.</summary>
        </member>
        <member name="M:Animancer.Editor.ParametizedAnimancerStateDrawer`1.DoParameterGUI(System.Int32,Animancer.StateParameterDetails)">
            <summary>Draws fields for the `parameter`.</summary>
        </member>
        <member name="M:Animancer.Editor.ParametizedAnimancerStateDrawer`1.DoBindingGUI(UnityEngine.Rect@,System.Int32,Animancer.StateParameterDetails,System.String@)">
            <summary>Draws a dropdown for the `parameter`'s name binding.</summary>
        </member>
        <member name="M:Animancer.Editor.ParametizedAnimancerStateDrawer`1.ShowBindingSelectionMenu(UnityEngine.Rect,System.Int32,System.String)">
            <summary>Shows a context menu for selecting the parameter binding.</summary>
        </member>
        <member name="M:Animancer.Editor.ParametizedAnimancerStateDrawer`1.SetParameterName(System.Int32,System.String)">
            <summary>Sets the name binding of the specified parameter.</summary>
        </member>
        <member name="T:Animancer.Editor.PlayableAssetStateDrawer">
            <inheritdoc/>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/PlayableAssetStateDrawer
        </member>
        <member name="P:Animancer.Editor.PlayableAssetStateDrawer.MainObjectName">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.ParameterGUI`1">
            <summary>[Editor-Only] A custom GUI for <see cref="T:Animancer.IParameter"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ParameterGUI_1
            
        </member>
        <member name="M:Animancer.Editor.ParameterGUI`1.DoGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.ParameterGUI`1.DoValueGUI">
            <summary>Draws the <see cref="P:Animancer.Editor.CustomGUI`1.Value"/> and returns the area used.</summary>
        </member>
        <member name="M:Animancer.Editor.ParameterGUI`1.DoFoldoutGUI(UnityEngine.Rect@)">
            <summary>Draws a foldout for the parameter details and returns true if expanded.</summary>
        </member>
        <member name="M:Animancer.Editor.ParameterGUI`1.DoDetailsGUI">
            <summary>Draws the details of the parameter.</summary>
        </member>
        <member name="M:Animancer.Editor.ParameterGUI`1.ShowContextMenu">
            <summary>Shows a context menu for the parameter.</summary>
        </member>
        <member name="T:Animancer.Editor.DragAndDropHandler`1">
            <summary>[Editor-Only]
            Delegate for validating and responding to <see cref="T:UnityEditor.DragAndDrop"/> operations.
            </summary>
            <remarks>
            
            <strong>Example:</strong>
            <code>
            private DragAndDropHandler&lt;AnimationClip&gt; _AnimationDropHandler;
            
            void OnGUI(Rect area)
            {
                _AnimationDropHandler ??= (clip, isDrop) =>
                {
                    if (clip.legacy)// Reject legacy animations
                        return false;
                        
                    if (isDrop)// Only act when dropping.
                        Debug.Log(clip + " was dropped");
                
                    return true;// Drag or drop is accepted.
                };
                
                _AnimationDropHandler.Handle(area);
            }
            </code></remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/DragAndDropZone_1
        </member>
        <member name="T:Animancer.Editor.AnimancerGraphControls">
            <summary>[Editor-Only] Draws manual controls for the <see cref="P:Animancer.AnimancerGraph.PlayableGraph"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerGraphControls
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphControls.DoGraphGUI(Animancer.AnimancerGraph,UnityEngine.Rect@)">
            <summary>Draws manual controls for the <see cref="P:Animancer.AnimancerGraph.PlayableGraph"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphControls.DoSpeedSliderGUI(Animancer.AnimancerGraph)">
            <summary>Draws the <see cref="T:Animancer.Editor.AnimancerGraphSpeedSlider"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphControls.DoPlayPauseToggle(UnityEngine.Rect,Animancer.AnimancerGraph,UnityEngine.GUIStyle)">
            <summary>Draws a toggle to play and pause the graph.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphControls.DoFrameStepButton(UnityEngine.Rect,Animancer.AnimancerGraph,UnityEngine.GUIStyle)">
            <summary>Draws a button to step time forward.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerGraphControls.DisplayName">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.AnimancerGraphControls.Index">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.AnimancerGraphControls.FrameStep">
            <summary>The amount of time that will be added by a single frame step (in seconds).</summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerGraphDrawer">
            <summary>[Editor-Only] Draws the Inspector GUI for an <see cref="P:Animancer.IAnimancerComponent.Graph"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerGraphDrawer
            
        </member>
        <member name="P:Animancer.Editor.AnimancerGraphDrawer.Current">
            <summary>The currently drawing instance.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGraphDrawer.LayerDrawers">
            <summary>A lazy list of information about the layers currently being displayed.</summary>
        </member>
        <member name="F:Animancer.Editor.AnimancerGraphDrawer._LayerCount">
            <summary>The number of elements in <see cref="F:Animancer.Editor.AnimancerGraphDrawer.LayerDrawers"/> that are currently being used.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.DoGUI(Animancer.IAnimancerComponent[])">
            <summary>Draws the GUI of the <see cref="P:Animancer.IAnimancerComponent.Graph"/> if there is only one target.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.DoGUI(Animancer.IAnimancerComponent)">
            <summary>Draws the GUI of the <see cref="P:Animancer.IAnimancerComponent.Graph"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.DoNativeAnimatorControllerGUI(Animancer.IAnimancerComponent)">
            <summary>Draws a GUI for the <see cref="P:UnityEngine.Animator.runtimeAnimatorController"/> if there is one.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.GetState(UnityEditor.Animations.ChildAnimatorState[],System.Int32)">
            <summary>Returns the state with the specified <see cref="P:UnityEditor.Animations.AnimatorState.nameHash"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.DoInternalDetailsGUI(Animancer.AnimancerGraph)">
            <summary>Draws a box describing the internal details of the `graph`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.DoGroupDetailsGUI``1(System.Collections.Generic.IReadOnlyList{``0},System.String,Animancer.Editor.BoolPref)">
            <summary>Draws the `items`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.DoDetailsGUI(System.Object)">
            <summary>Draws the details of the `item`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.IsMainObjectUsedMultipleTimes(UnityEngine.Object)">
            <summary>Is the given `mainObject` used as the <see cref="P:Animancer.AnimancerState.MainObject"/> of multiple states?</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.CheckContextMenu(UnityEngine.Rect,Animancer.AnimancerGraph)">
            <summary>
            Checks if the current event is a context menu click within the `clickArea`
            and opens a context menu with various functions for the `graph`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.AddRootFunctions(UnityEditor.GenericMenu,Animancer.AnimancerGraph)">
            <summary>Adds functions for controlling the `graph`.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.AddUpdateModeFunctions(UnityEditor.GenericMenu,Animancer.AnimancerGraph)">
            <summary>Adds menu functions to set the <see cref="T:UnityEngine.Playables.DirectorUpdateMode"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.AddDisposablesFunctions(UnityEditor.GenericMenu,System.Collections.Generic.List{System.IDisposable})">
            <summary>Adds disabled items for each disposable.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.AddPlayableGraphVisualizerFunction(UnityEditor.GenericMenu,System.String,UnityEngine.Playables.PlayableGraph)">
            <summary>Adds a menu function to open the Playable Graph Visualiser if it exists in the project.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.AddDisplayOptions(UnityEditor.GenericMenu)">
            <summary>Adds functions to the `menu` for each of the Display Options.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphDrawer.ApplySortStatesByName(System.Collections.Generic.List{Animancer.AnimancerState})">
            <summary>Sorts the `states` if <see cref="F:Animancer.Editor.AnimancerGraphDrawer.SortStatesByName"/> is enabled.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerGraphSpeedSlider">
            <summary>[Editor-Only]
            <see cref="T:Animancer.Editor.ToggledSpeedSlider"/> for <see cref="T:Animancer.AnimancerGraph"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerGraphSpeedSlider
        </member>
        <member name="F:Animancer.Editor.AnimancerGraphSpeedSlider.Instance">
            <summary>Singleton.</summary>
        </member>
        <member name="P:Animancer.Editor.AnimancerGraphSpeedSlider.Graph">
            <summary>The target graph.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphSpeedSlider.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Editor.AnimancerGraphSpeedSlider"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphSpeedSlider.OnSetSpeed(System.Single)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.AnimancerGraphSpeedSlider.DoToggleGUI(UnityEngine.Rect,UnityEngine.GUIStyle)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.DummyInvokableDrawer">
            <summary>[Editor-Only] [Internal]
            A utility for drawing empty [<see cref="T:UnityEngine.SerializeReference"/>] <see cref="T:Animancer.IInvokable"/> fields.
            </summary>
            <remarks>
            Used to draw empty slots in <see cref="P:Animancer.AnimancerEvent.Sequence.Serializable.Callbacks"/>
            which don't actually have a <see cref="T:UnityEditor.SerializedProperty"/> of their own because
            the array is compacted to trim any <c>null</c> items from the end. 
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/DummyInvokableDrawer
        </member>
        <member name="P:Animancer.Editor.DummyInvokableDrawer.InvokableProperty">
            <summary>[Editor-Only] A static dummy <see cref="T:Animancer.IInvokable"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.DummyInvokableDrawer.Height">
            <summary>[Editor-Only] The GUI height required by <see cref="M:Animancer.Editor.DummyInvokableDrawer.DoGUI(UnityEngine.Rect@,UnityEngine.GUIContent,UnityEditor.SerializedProperty,System.Object@)"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.DummyInvokableDrawer.DoGUI(UnityEngine.Rect@,UnityEngine.GUIContent,UnityEditor.SerializedProperty,System.Object@)">
            <summary>[Editor-Only] Draws the <see cref="P:Animancer.Editor.DummyInvokableDrawer.InvokableProperty"/> GUI.</summary>
        </member>
        <member name="T:Animancer.Editor.EventSequenceDrawer">
            <summary>[Editor-Only] Draws the Inspector GUI for a <see cref="T:Animancer.AnimancerEvent.Sequence"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/EventSequenceDrawer
        </member>
        <member name="M:Animancer.Editor.EventSequenceDrawer.Get(Animancer.AnimancerEvent.Sequence)">
            <summary>Returns a cached <see cref="T:Animancer.Editor.EventSequenceDrawer"/> for the `events`.</summary>
            <remarks>
            The cache uses a <see cref="T:System.Runtime.CompilerServices.ConditionalWeakTable`2"/> so it doesn't prevent the `events`
            from being garbage collected.
            </remarks>
        </member>
        <member name="M:Animancer.Editor.EventSequenceDrawer.CalculateHeight(Animancer.AnimancerEvent.Sequence)">
            <summary>Calculates the number of vertical pixels required to draw the contents of the `events`.</summary>
        </member>
        <member name="M:Animancer.Editor.EventSequenceDrawer.CalculateLineCount(Animancer.AnimancerEvent.Sequence)">
            <summary>Calculates the number of lines required to draw the contents of the `events`.</summary>
        </member>
        <member name="P:Animancer.Editor.EventSequenceDrawer.IsExpanded">
            <summary>Should the target's default be shown?</summary>
        </member>
        <member name="M:Animancer.Editor.EventSequenceDrawer.DoGUI(UnityEngine.Rect@,Animancer.AnimancerEvent.Sequence,UnityEngine.GUIContent)">
            <summary>Draws the GUI for the `events`.</summary>
        </member>
        <member name="M:Animancer.Editor.EventSequenceDrawer.DoGUI(UnityEngine.Rect@,Animancer.AnimancerEvent.Sequence,UnityEngine.GUIContent,UnityEngine.GUIContent)">
            <summary>Draws the GUI for the `events`.</summary>
        </member>
        <member name="M:Animancer.Editor.EventSequenceDrawer.GetSummary(Animancer.AnimancerEvent.Sequence)">
            <summary>Returns a summary of the `events`.</summary>
        </member>
        <member name="M:Animancer.Editor.EventSequenceDrawer.Draw(UnityEngine.Rect@,System.String,Animancer.AnimancerEvent)">
            <summary>Draws the GUI for the `animancerEvent`.</summary>
        </member>
        <member name="T:Animancer.Editor.FastObjectField">
            <summary>[Editor-Only] A GUI wrapper for drawing any object as a label with an icon.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/FastObjectField
            
        </member>
        <member name="P:Animancer.Editor.FastObjectField.Null">
            <summary>A <see cref="T:Animancer.Editor.FastObjectField"/> representing <c>null</c>.</summary>
        </member>
        <member name="P:Animancer.Editor.FastObjectField.Value">
            <summary>The object passed into the last <c>Draw</c> call.</summary>
        </member>
        <member name="P:Animancer.Editor.FastObjectField.Text">
            <summary>The text used for the label in the last <c>Draw</c> call.</summary>
        </member>
        <member name="P:Animancer.Editor.FastObjectField.Icon">
            <summary>The icon drawn in the last <c>Draw</c> call.</summary>
        </member>
        <member name="M:Animancer.Editor.FastObjectField.Set(System.Object,System.String,UnityEngine.Texture)">
            <summary>Sets the current details directly.</summary>
        </member>
        <member name="M:Animancer.Editor.FastObjectField.Draw(UnityEngine.Rect,System.String,System.Object,System.Boolean)">
            <summary>Draws a field for the `value`.</summary>
        </member>
        <member name="M:Animancer.Editor.FastObjectField.Draw(UnityEngine.Rect,System.Object,System.Boolean)">
            <summary>Draws a field for the `value`.</summary>
        </member>
        <member name="M:Animancer.Editor.FastObjectField.Draw(UnityEngine.Rect,System.Boolean)">
            <summary>Draws a field for the <see cref="P:Animancer.Editor.FastObjectField.Value"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.FastObjectField.SetValue(System.Object,System.String,UnityEngine.Texture)">
            <summary>Sets the cached details.</summary>
        </member>
        <member name="M:Animancer.Editor.FastObjectField.SetValue(System.Object)">
            <summary>Sets the cached details based on the `value`.</summary>
        </member>
        <member name="M:Animancer.Editor.FastObjectField.GetText">
            <summary>Returns a string based on the <see cref="P:Animancer.Editor.FastObjectField.Value"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.FastObjectField.GetIcon">
            <summary>Returns an icon based on the type of the <see cref="P:Animancer.Editor.FastObjectField.Value"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.FastObjectField.GetIcon(System.Object)">
            <summary>Returns an icon based on the type of the `value`.</summary>
        </member>
        <member name="M:Animancer.Editor.FastObjectField.Clear">
            <summary>Clears all cached details.</summary>
        </member>
        <member name="T:Animancer.Editor.NamedEventDictionaryDrawer">
            <summary>[Editor-Only] Draws the Inspector GUI for an <see cref="T:Animancer.NamedEventDictionary"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/NamedEventDictionaryDrawer
            
        </member>
        <member name="M:Animancer.Editor.NamedEventDictionaryDrawer.DoEventsGUI(Animancer.AnimancerGraph)">
            <summary>Draws the <see cref="P:Animancer.AnimancerGraph.Events"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.NamedEventDictionaryDrawer.DoEventGUI(System.String,System.Action)">
            <summary>Draws an event.</summary>
        </member>
        <member name="T:Animancer.Editor.ParameterDictionaryDrawer">
            <summary>[Editor-Only] Draws the Inspector GUI for an <see cref="T:Animancer.ParameterDictionary"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ParameterDictionaryDrawer
            
        </member>
        <member name="M:Animancer.Editor.ParameterDictionaryDrawer.DoParametersGUI(Animancer.AnimancerGraph)">
            <summary>Draws the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.ParameterDictionaryDrawer.DoParameterGUI(Animancer.IParameter)">
            <summary>Draws the `parameter`.</summary>
        </member>
        <member name="T:Animancer.Editor.SerializableEventSequenceDrawer">
            <summary>[Editor-Only] Draws the Inspector GUI for a <see cref="T:Animancer.AnimancerEvent.Sequence.Serializable"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/SerializableEventSequenceDrawer
        </member>
        <member name="F:Animancer.Editor.SerializableEventSequenceDrawer.Repaint">
            <summary><see cref="M:Animancer.Editor.AnimancerGUI.RepaintEverything"/></summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.GetPropertyHeight(UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <summary>
            Calculates the number of vertical pixels the `property` will occupy when it is drawn.
            </summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.OnGUI(UnityEngine.Rect,UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <summary>Draws the GUI for the `property`.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.DoEventGUI(UnityEngine.Rect@,Animancer.Editor.SerializableEventSequenceDrawer.Context,System.Int32,System.Boolean)">
            <summary>Draws the GUI fields for the event at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.DoNameGUI(UnityEngine.Rect@,Animancer.Editor.SerializableEventSequenceDrawer.Context,System.Int32,System.String)">
            <summary>Draws the time field for the event at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.DoTimeGUI(UnityEngine.Rect@,Animancer.Editor.SerializableEventSequenceDrawer.Context,System.Int32,System.Boolean,System.String,System.Single,System.Boolean)">
            <summary>Draws the time field for the event at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.DoTimeGUI(UnityEngine.Rect@,Animancer.Editor.SerializableEventSequenceDrawer.Context,System.Int32,System.Boolean)">
            <summary>Draws the time field for the event at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.SyncEventTimeChange(Animancer.Editor.SerializableEventSequenceDrawer.Context,System.Int32,System.Single)">
            <summary>Updates the <see cref="P:Animancer.AnimancerEvent.Sequence.Serializable.Events"/> to accomodate a changed event time.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.DoCallbackGUI(UnityEngine.Rect@,Animancer.Editor.SerializableEventSequenceDrawer.Context,System.Int32,System.String)">
            <summary>Draws the GUI fields for the event at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.DoAddRemoveEventButtonGUI(UnityEngine.Rect,Animancer.Editor.SerializableEventSequenceDrawer.Context)">
            <summary>Draws a button to add a new event or remove the selected one.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.AddEvent(Animancer.Editor.SerializableEventSequenceDrawer.Context,System.Single)">
            <summary>Adds an event to the sequence represented by the given `context`.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.RemoveEvent(Animancer.Editor.SerializableEventSequenceDrawer.Context,System.Int32)">
            <summary>Removes the event at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.SortEvents(Animancer.Editor.SerializableEventSequenceDrawer.Context)">
            <summary>Sorts the events in the `context` according to their times.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.DynamicSwap``1(``0[]@,System.Int32)">
            <summary>
            Swaps <c>array[index]</c> with <c>array[index - 1]</c>
            while accounting for the possibility of the `index` being beyond the bounds of the `array`.
            </summary>
        </member>
        <member name="T:Animancer.Editor.SerializableEventSequenceDrawer.Context">
            <summary>Details of an <see cref="T:Animancer.AnimancerEvent.Sequence.Serializable"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.SerializableEventSequenceDrawer.Context.Property">
            <summary>The main property representing the <see cref="P:Animancer.Editor.SerializableEventSequenceDrawer.Context.Sequence"/> field.</summary>
        </member>
        <member name="P:Animancer.Editor.SerializableEventSequenceDrawer.Context.Sequence">
            <summary>Underlying value of the <see cref="P:Animancer.Editor.SerializableEventSequenceDrawer.Context.Property"/>.</summary>
        </member>
        <member name="F:Animancer.Editor.SerializableEventSequenceDrawer.Context.Times">
            <summary>The property representing the <see cref="P:Animancer.AnimancerEvent.Sequence.Serializable.NormalizedTimes"/> backing field.</summary>
        </member>
        <member name="F:Animancer.Editor.SerializableEventSequenceDrawer.Context.Names">
            <summary>The property representing the <see cref="P:Animancer.AnimancerEvent.Sequence.Serializable.Names"/> backing field.</summary>
        </member>
        <member name="F:Animancer.Editor.SerializableEventSequenceDrawer.Context.Callbacks">
            <summary>The property representing the <see cref="P:Animancer.AnimancerEvent.Sequence.Serializable.Callbacks"/> backing field.</summary>
        </member>
        <member name="P:Animancer.Editor.SerializableEventSequenceDrawer.Context.SelectedEvent">
            <summary>The index of the currently selected event.</summary>
        </member>
        <member name="F:Animancer.Editor.SerializableEventSequenceDrawer.Context.Stack">
            <summary>The stack of active contexts.</summary>
        </member>
        <member name="F:Animancer.Editor.SerializableEventSequenceDrawer.Context._ActiveIndex">
            <summary>The number of active items in the <see cref="F:Animancer.Editor.SerializableEventSequenceDrawer.Context.Stack"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.SerializableEventSequenceDrawer.Context.Current">
            <summary>The currently active instance.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.Context.Get(UnityEditor.SerializedProperty)">
            <summary>Adds a new <see cref="T:Animancer.Editor.SerializableEventSequenceDrawer.Context"/> representing the `property` to the stack and returns it.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.Context.SetAsCurrent">
            <summary>Sets this <see cref="T:Animancer.Editor.SerializableEventSequenceDrawer.Context"/> as the <see cref="P:Animancer.Editor.SerializableEventSequenceDrawer.Context.Current"/> and returns it.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.Context.Dispose">
            <summary>[<see cref="T:System.IDisposable"/>] Calls <see cref="M:UnityEditor.SerializedObject.ApplyModifiedProperties"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.SerializableEventSequenceDrawer.Context.TransitionContext">
            <summary>Shorthand for <see cref="P:Animancer.Editor.TransitionDrawer.Context"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableEventSequenceDrawer.Context.Copy">
            <summary>Creates a copy of this <see cref="T:Animancer.Editor.SerializableEventSequenceDrawer.Context"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.SerializableEventSequenceDrawerSettings">
            <summary>[Editor-Only] Settings for <see cref="T:Animancer.Editor.SerializableEventSequenceDrawer"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/SerializableEventSequenceDrawerSettings
        </member>
        <member name="P:Animancer.Editor.SerializableEventSequenceDrawerSettings.DisplayName">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.SerializableEventSequenceDrawerSettings.Index">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.SerializableEventSequenceDrawerSettings.HideEventCallbacks">
            <summary>Should Animancer Event Callbacks be hidden in the Inspector?</summary>
        </member>
        <member name="T:Animancer.Editor.StringAssetDrawer">
            <summary>[Editor-Only] A custom Inspector for <see cref="T:Animancer.StringAssetInternal"/> fields.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/StringAssetDrawer
        </member>
        <member name="M:Animancer.Editor.StringAssetDrawer.GetPropertyHeight(UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.StringAssetDrawer.OnGUI(UnityEngine.Rect,UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.StringAssetDrawer.DrawGUI(UnityEngine.Rect,UnityEngine.GUIContent,UnityEditor.SerializedProperty,System.Boolean@)">
            <summary>Draws the GUI for a <see cref="T:Animancer.StringAssetInternal"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.StringAssetDrawer.DrawGUI(UnityEngine.Rect,UnityEngine.GUIContent,UnityEngine.Object,UnityEngine.Object,System.Boolean@,System.Func{UnityEngine.Object[]})">
            <summary>Draws the GUI for a <see cref="T:Animancer.StringAssetInternal"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.StringAssetDrawer.IsDraggingStringAsset">
            <summary>Is a <see cref="T:Animancer.StringAssetInternal"/> currently being dragged?</summary>
        </member>
        <member name="M:Animancer.Editor.StringAssetDrawer.CreateNewInstance(System.String,UnityEngine.Object)">
            <summary>Asks where to save a new <see cref="T:Animancer.StringAssetInternal"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.TimelineGUI">
            <summary>[Editor-Only] Draws a GUI box denoting a period of time.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/TimelineGUI
            
        </member>
        <member name="P:Animancer.Editor.TimelineGUI.EventIcon">
            <summary>The icon used for events.</summary>
        </member>
        <member name="P:Animancer.Editor.TimelineGUI.Area">
            <summary>The pixel area in which this <see cref="T:Animancer.Editor.TimelineGUI"/> is drawing.</summary>
        </member>
        <member name="P:Animancer.Editor.TimelineGUI.TickHeight">
            <summary>The height of the time ticks.</summary>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.SecondsToPixels(System.Single)">
            <summary>Converts a number of seconds to a horizontal pixel position along the ruler.</summary>
            <remarks>The value is rounded to the nearest integer.</remarks>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.PixelsToSeconds(System.Single)">
            <summary>Converts a horizontal pixel position along the ruler to a number of seconds.</summary>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.SecondsToNormalized(System.Single)">
            <summary>Converts a number of seconds to a normalized time value.</summary>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.NormalizedToSeconds(System.Single)">
            <summary>Converts a normalized time value to a number of seconds.</summary>
        </member>
        <member name="P:Animancer.Editor.TimelineGUI.Current">
            <summary>The currently drawing <see cref="T:Animancer.Editor.TimelineGUI"/> (or null if none is drawing).</summary>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.System#IDisposable#Dispose">
            <summary>Ends the area started by <see cref="M:Animancer.Editor.TimelineGUI.BeginGUI(UnityEngine.Rect)"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.BeginGUI(UnityEngine.Rect)">
            <summary>
            Sets the `area` in which the ruler will be drawn and draws a <see cref="M:UnityEngine.GUI.Box(UnityEngine.Rect,System.String)"/> there.
            The returned object must have <see cref="M:System.IDisposable.Dispose"/> called on it afterwards.
            </summary>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.DoGUI(UnityEngine.Rect,Animancer.Editor.SerializableEventSequenceDrawer.Context,System.Single@)">
            <summary>Draws the ruler GUI and handles input events for the specified `context`.</summary>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.DoGUI(Animancer.Editor.SerializableEventSequenceDrawer.Context,System.Single@)">
            <summary>Draws the ruler GUI and handles input events for the specified `context`.</summary>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.GetStartTime(System.Single,System.Single,System.Single)">
            <summary>Calculates the start time of the transition (in seconds).</summary>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.GetFadeOutEnd(System.Single,System.Single,System.Single)">
            <summary>Calculates the end time of the fade out (in seconds).</summary>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.DoFadeHighlightGUI">
            <summary>Draws a polygon describing the start, end, and fade details.</summary>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.DoEventsGUI(Animancer.Editor.SerializableEventSequenceDrawer.Context,System.Single@)">
            <summary>Draws the details of the <see cref="F:Animancer.Editor.SerializableEventSequenceDrawer.Context.Callbacks"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.SnapToFrameRate(Animancer.Editor.SerializableEventSequenceDrawer.Context,System.Single@)">
            <summary>Snaps the `seconds` value to the nearest multiple of the <see cref="P:UnityEngine.AnimationClip.frameRate"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TimelineGUI.DoRulerGUI">
            <summary>Draws ticks and labels for important times throughout the area.</summary>
        </member>
        <member name="T:Animancer.Editor.ToggledSpeedSlider">
            <summary>[Editor-Only] Utility for a toggle which can show and hide a speed slider.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ToggledSpeedSlider
        </member>
        <member name="F:Animancer.Editor.ToggledSpeedSlider.GUIContent">
            <summary>The content displayed on the toggle.</summary>
            <remarks>The <see cref="P:UnityEngine.GUIContent.text"/> is set by the <see cref="P:Animancer.Editor.ToggledSpeedSlider.Speed"/>.</remarks>
        </member>
        <member name="F:Animancer.Editor.ToggledSpeedSlider.IsOn">
            <summary>Is the toggle currently on?</summary>
        </member>
        <member name="P:Animancer.Editor.ToggledSpeedSlider.Speed">
            <summary>The current speed value.</summary>
        </member>
        <member name="M:Animancer.Editor.ToggledSpeedSlider.OnSetSpeed(System.Single)">
            <summary>Called when the <see cref="P:Animancer.Editor.ToggledSpeedSlider.Speed"/> is changed.</summary>
        </member>
        <member name="M:Animancer.Editor.ToggledSpeedSlider.#ctor(System.String)">
            <summary>Creates a new <see cref="T:Animancer.Editor.ToggledSpeedSlider"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.ToggledSpeedSlider.DoToggleGUI(UnityEngine.Rect,UnityEngine.GUIStyle)">
            <summary>Draws a toggle to show or hide the speed slider.</summary>
        </member>
        <member name="M:Animancer.Editor.ToggledSpeedSlider.DoSpeedSlider(UnityEngine.Rect@,UnityEngine.GUIStyle)">
            <summary>Draws a slider to control the <see cref="P:Animancer.Editor.ToggledSpeedSlider.Speed"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.ToggledSpeedSlider.HandleResetClick(UnityEngine.Rect)">
            <summary>Handles Right or Middle Clicking in the `area` to reset the <see cref="P:Animancer.Editor.ToggledSpeedSlider.Speed"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionDrawer">
            <summary>[Editor-Only] Draws the Inspector GUI for an <see cref="T:Animancer.ITransitionDetailed"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/TransitionDrawer
        </member>
        <member name="T:Animancer.Editor.TransitionDrawer.Mode">
            <summary>The visual state of a drawer.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionDrawer._Mode">
            <summary>The current state of this drawer.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionDrawer.MainPropertyName">
            <summary>
            If set, the field with this name will be drawn on the header line with the foldout arrow instead of in its
            regular place.
            </summary>
        </member>
        <member name="F:Animancer.Editor.TransitionDrawer.MainPropertyPathSuffix">
            <summary>"." + <see cref="F:Animancer.Editor.TransitionDrawer.MainPropertyName"/> (to avoid creating garbage repeatedly).</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Editor.TransitionDrawer"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.#ctor(System.String)">
            <summary>Creates a new <see cref="T:Animancer.Editor.TransitionDrawer"/> and sets the <see cref="F:Animancer.Editor.TransitionDrawer.MainPropertyName"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.GetMainProperty(UnityEditor.SerializedProperty)">
            <summary>Returns the property specified by the <see cref="F:Animancer.Editor.TransitionDrawer.MainPropertyName"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.GetPropertyHeight(UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <summary>Returns the number of vertical pixels the `property` will occupy when it is drawn.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.OnGUI(UnityEngine.Rect,UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <summary>Draws the root `property` GUI and calls <see cref="M:Animancer.Editor.TransitionDrawer.DoChildPropertyGUI(UnityEngine.Rect@,UnityEditor.SerializedProperty,UnityEditor.SerializedProperty,UnityEngine.GUIContent)"/> for each of its children.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.InitializeMode(UnityEditor.SerializedProperty)">
            <summary>
            If the <see cref="F:Animancer.Editor.TransitionDrawer._Mode"/> is <see cref="F:Animancer.Editor.TransitionDrawer.Mode.Uninitialized"/>, this method determines how it should start
            based on the number of properties in the `serializedObject`. If the only serialized field is an
            <see cref="T:Animancer.ITransition"/> then it should start expanded.
            </summary>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.DoHeaderGUI(UnityEngine.Rect@,UnityEditor.SerializedProperty,UnityEditor.SerializedProperty,UnityEngine.GUIContent,System.Boolean)">
            <summary>Draws the root property of a transition with an optional main property on the same line.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.DoMainPropertyGUI(UnityEngine.Rect,UnityEngine.Rect@,UnityEditor.SerializedProperty,UnityEditor.SerializedProperty)">
            <summary>Draws the GUI the the target transition's main property.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.DoPreviewButtonGUI(UnityEngine.Rect@,UnityEditor.SerializedProperty,System.Boolean)">
            <summary>Draws a small button using the <see cref="P:Animancer.Editor.Previews.TransitionPreviewWindow.Icon"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.DoPreviewButtonGUI(UnityEngine.Rect@,System.Boolean,System.String)">
            <summary>Draws a small button using the <see cref="P:Animancer.Editor.Previews.TransitionPreviewWindow.Icon"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionDrawer.PreviewButtonStyle">
            <summary>The style used for the button that opens the <see cref="T:Animancer.Editor.Previews.TransitionPreviewWindow"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.DoChildPropertyGUI(UnityEngine.Rect@,UnityEditor.SerializedProperty,UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <summary>
            Draws the `property` GUI in relation to the `rootProperty` which was passed into <see cref="M:Animancer.Editor.TransitionDrawer.OnGUI(UnityEngine.Rect,UnityEditor.SerializedProperty,UnityEngine.GUIContent)"/>.
            </summary>
        </member>
        <member name="F:Animancer.Editor.TransitionDrawer.NormalizedStartTimeFieldName">
            <summary>The name of the backing field of <c>ClipTransition.NormalizedStartTime</c>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.TryDoStartTimeField(UnityEngine.Rect@,UnityEditor.SerializedProperty,UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <summary>
            If the `property` is a "Start Time" field, this method draws it as well as the "End Time" below it and
            returns true.
            </summary>
        </member>
        <member name="P:Animancer.Editor.TransitionDrawer.Context">
            <summary>The current <see cref="T:Animancer.Editor.TransitionDrawer.DrawerContext"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionDrawer.DrawerContext">
            <summary>Details used to draw an <see cref="T:Animancer.ITransition"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/DrawerContext
        </member>
        <member name="F:Animancer.Editor.TransitionDrawer.DrawerContext.Stack">
            <summary>The stack of active contexts.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionDrawer.DrawerContext.Property">
            <summary>The main property representing the <see cref="T:Animancer.ITransition"/> field.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionDrawer.DrawerContext.Transition">
            <summary>The actual transition object rerieved from the <see cref="F:Animancer.Editor.TransitionDrawer.DrawerContext.Property"/>.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionDrawer.DrawerContext.MaximumDuration">
            <summary>The cached value of <see cref="P:Animancer.ITransitionDetailed.MaximumDuration"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.DrawerContext.#ctor(UnityEditor.SerializedProperty)">
            <summary>Creates a new <see cref="T:Animancer.Editor.TransitionDrawer.DrawerContext"/>.</summary>
            <remarks>Be sure to <see cref="M:Animancer.Editor.TransitionDrawer.DrawerContext.Dispose"/> it when done.</remarks>
        </member>
        <member name="M:Animancer.Editor.TransitionDrawer.DrawerContext.Dispose">
            <summary>Applies any modified properties and decrements the stack.</summary>
        </member>
        <member name="T:Animancer.Editor.GUIControl">
            <summary>[Editor-Only] Utility for implementing IMGUI controls.</summary>
            <remarks>
            <strong>Example:</strong>
            <code>
            private static readonly int ControlHash = "ControlName".GetHashCode();
            
            void OnGUI(Rect area)
            {
                var control = new GUIControl(area, ControlHash);
                
                switch (control.EventType)
                {
                    case EventType.MouseDown:
                        if (control.TryUseMouseDown())
                        {
                        }
                        break;
                
                    case EventType.MouseUp:
                        if (control.TryUseMouseUp())
                        {
                        }
                        break;
                
                    case EventType.MouseDrag:
                        if (control.TryUseHotControl())
                        {
                        }
                        break;
                }
            }
            </code></remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/GUIControl
        </member>
        <member name="F:Animancer.Editor.GUIControl.Area">
            <summary>The position and size of this control</summary>
        </member>
        <member name="F:Animancer.Editor.GUIControl.ID">
            <summary>The Control ID of this control.</summary>
        </member>
        <member name="F:Animancer.Editor.GUIControl.Event">
            <summary>The event being processed by this control.</summary>
        </member>
        <member name="P:Animancer.Editor.GUIControl.EventType">
            <summary>The type of the <see cref="F:Animancer.Editor.GUIControl.Event"/> in relation to this control.</summary>
        </member>
        <member name="P:Animancer.Editor.GUIControl.ContainsMousePosition">
            <summary>Does the <see cref="F:Animancer.Editor.GUIControl.Area"/> contain the <see cref="P:UnityEngine.Event.mousePosition"/>?</summary>
        </member>
        <member name="M:Animancer.Editor.GUIControl.#ctor(UnityEngine.Rect,UnityEngine.Event,System.Int32,UnityEngine.FocusType)">
            <summary>Creaates a new <see cref="T:Animancer.Editor.GUIControl"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.GUIControl.#ctor(UnityEngine.Rect,System.Int32,UnityEngine.FocusType)">
            <summary>Creaates a new <see cref="T:Animancer.Editor.GUIControl"/> with the <see cref="P:UnityEngine.Event.current"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.GUIControl.TryUseMouseDown">
            <summary><see cref="M:Animancer.Editor.AnimancerGUI.TryUseMouseDown(UnityEngine.Rect,UnityEngine.Event,System.Int32)"/></summary>
        </member>
        <member name="M:Animancer.Editor.GUIControl.TryUseMouseUp(System.Boolean)">
            <summary><see cref="M:Animancer.Editor.AnimancerGUI.TryUseMouseUp(UnityEngine.Event,System.Int32,System.Boolean)"/></summary>
        </member>
        <member name="M:Animancer.Editor.GUIControl.TryUseHotControl(System.Boolean)">
            <summary><see cref="M:Animancer.Editor.AnimancerGUI.TryUseHotControl(UnityEngine.Event,System.Int32,System.Boolean)"/></summary>
        </member>
        <member name="M:Animancer.Editor.GUIControl.TryUseKey(UnityEngine.KeyCode)">
            <summary><see cref="M:Animancer.Editor.AnimancerGUI.TryUseKey(UnityEngine.Event,System.Int32,UnityEngine.KeyCode)"/></summary>
        </member>
        <member name="T:Animancer.Editor.ModifySerializedField">
            <summary>[Editor-Only]
            A wrapper for modifying a serialized field to allow it to be properly saved and undone.
            </summary>
            <remarks>
            <strong>Example:</strong>
            <code>
            using (new ModifySerializedField(target))// Undo gets captured.
            {
                // Modify values on the target.
            }// Target gets flagged for saving.
            </code></remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ModifySerializedField
        </member>
        <member name="F:Animancer.Editor.ModifySerializedField.Target">
            <summary>The object being modified.</summary>
        </member>
        <member name="F:Animancer.Editor.ModifySerializedField.MightBePrefab">
            <summary>Prefab modifications are more complicated to track due to the possibility of nested prefabs.</summary>
        </member>
        <member name="M:Animancer.Editor.ModifySerializedField.#ctor(UnityEngine.Object,System.String,System.Boolean)">
            <summary>Captures the state of the target as an undo step.</summary>
        </member>
        <member name="M:Animancer.Editor.ModifySerializedField.Dispose">
            <summary>Flags the target as modified so that it will get saved by Unity.</summary>
        </member>
        <member name="T:Animancer.Editor.Previews.AnimancerComponentPreviewInternal">
            <summary>[Editor-Only]
            An interactive preview which displays the internal details of an <see cref="T:Animancer.IAnimancerComponent"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/AnimancerComponentPreview
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerComponentPreviewInternal.GetPreviewTitle">
            <inheritdoc/>
        </member>
        <member name="F:Animancer.Editor.Previews.AnimancerComponentPreviewInternal.GraphDrawer">
            <summary>The drawer for the <see cref="P:Animancer.IAnimancerComponent.Graph"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerComponentPreviewInternal.Initialize(UnityEngine.Object[])">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerComponentPreviewInternal.Cleanup">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerComponentPreviewInternal.HasPreviewGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerComponentPreviewInternal.OnPreviewSettings">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerComponentPreviewInternal.OnInteractivePreviewGUI(UnityEngine.Rect,UnityEngine.GUIStyle)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerComponentPreviewInternal.Update">
            <summary>Repaints the preview if necessary.</summary>
        </member>
        <member name="T:Animancer.Editor.Previews.AnimancerComponentPreviewSettings">
            <summary>[Editor-Only] Settings for <see cref="T:Animancer.Editor.Previews.AnimancerComponentPreviewInternal"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/AnimancerComponentPreviewSettings
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerComponentPreviewSettings.DisplayName">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerComponentPreviewSettings.Index">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerComponentPreviewSettings.RepaintRate">
            <summary>The target frame rate of repaint commands (FPS).</summary>
        </member>
        <member name="T:Animancer.Editor.Previews.AnimancerPreviewObject">
            <summary>[Editor-Only] Manages the selection and instantiation of models for previewing animations.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/AnimancerPreviewObject
        </member>
        <member name="T:Animancer.Editor.Previews.AnimancerPreviewObject.IEventHandler">
            <summary>[Editor-Only] Handles events from an <see cref="T:Animancer.Editor.Previews.AnimancerPreviewObject"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/IEventHandler
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.IEventHandler.OnInstantiateObject">
            <summary>Called after the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceObject"/> is instantiated.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.IEventHandler.OnSetSelectedAnimator">
            <summary>Called after the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.SelectedInstanceAnimator"/> is changed.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.IEventHandler.OnCreateGraph">
            <summary>Called after the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.Graph"/> is initialized.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerPreviewObject.EventHandler">
            <summary>An optional listener for this object's events.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerPreviewObject.OriginalObject">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>]
            The original model which was instantiated to create the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceObject"/>.
            </summary>
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceRoot">
            <summary>The object to instantiate the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceObject"/> under.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceObject">
            <summary>The preview copy of the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.OriginalObject"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceBounds">
            <summary>The bounds of the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceObject"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceAnimators">
            <summary>The <see cref="T:UnityEngine.Animator"/>s on the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceObject"/> and its children.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerPreviewObject.SelectedInstanceType">
            <summary>The type of the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.SelectedInstanceAnimator"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerPreviewObject.SelectedInstanceAnimator">
            <summary>The <see cref="T:UnityEngine.Animator"/> component currently being used for the preview.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerPreviewObject.Graph">
            <summary>The <see cref="T:Animancer.AnimancerGraph"/> being used for the preview.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.Initialize(Animancer.Editor.Previews.AnimancerPreviewObject@,Animancer.Editor.Previews.AnimancerPreviewObject.IEventHandler,UnityEngine.Transform)">
            <summary>
            Creates a new <see cref="T:Animancer.Editor.Previews.AnimancerPreviewObject"/>
            and calls <see cref="M:Animancer.Editor.Previews.AnimancerPreviewObject.Initialize(UnityEngine.Transform)"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.Initialize(UnityEngine.Transform)">
            <summary>Sets the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceRoot"/> for this preview to work under.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.Dispose">
            <summary>Cleans up this preview.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.OnPlayModeChanged(UnityEditor.PlayModeStateChange)">
            <summary>Called when entering or exiting Play Mode to destroy the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceObject"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.OnSceneOpening(System.String,UnityEditor.SceneManagement.OpenSceneMode)">
            <summary>Called when opening a scene to destroy the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceObject"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.InstantiateObject">
            <summary>Destroys and re-instantiates the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceObject"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.DisableUnnecessaryComponents(UnityEngine.GameObject)">
            <summary>Disables all unnecessary components on the `root` or its children.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.SetSelectedAnimator(System.Int32)">
            <summary>Sets the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.SelectedInstanceAnimator"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.DestroyInstanceObject">
            <summary>Destroys the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.InstanceObject"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.DestroyGraph">
            <summary>Destroys the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.Graph"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.TrySelectBestModel(System.Object)">
            <summary>
            Calls <see cref="M:Animancer.Editor.Previews.TransitionPreviewSettings.TrySelectBestModel(System.Object,UnityEngine.Transform)"/>
            if there is no <see cref="P:Animancer.Editor.Previews.AnimancerPreviewObject.OriginalObject"/> yet.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObject.CreateEmpty(System.String)">
            <summary>
            Creates an object using <see cref="F:UnityEngine.HideFlags.HideAndDontSave"/>
            without <see cref="F:UnityEngine.HideFlags.NotEditable"/>.
            </summary>
        </member>
        <member name="T:Animancer.Editor.Previews.AnimancerPreviewObjectGUI">
            <summary>[Editor-Only] GUI utilities for <see cref="T:Animancer.Editor.Previews.AnimancerPreviewObject"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/AnimancerPreviewObjectGUI
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObjectGUI.CalculateHeight(Animancer.Editor.Previews.AnimancerPreviewObject)">
            <summary>Calculates the pixel height required to draw the `preview`.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObjectGUI.DoModelGUI(Animancer.Editor.Previews.AnimancerPreviewObject)">
            <summary>Draws the model selection GUI.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObjectGUI.DoModelGUI(UnityEngine.Rect,Animancer.Editor.Previews.AnimancerPreviewObject)">
            <summary>Draws the model selection GUI.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObjectGUI.AddModelSelectionFunctions(UnityEditor.GenericMenu,Animancer.Editor.Previews.AnimancerPreviewObject,System.Collections.Generic.List{UnityEngine.GameObject},UnityEngine.GameObject)">
            <summary>Adds menu functions for selecting each of the `models`.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObjectGUI.GetModelWarning(UnityEngine.GameObject,Animancer.Editor.Previews.AnimancerPreviewObject)">
            <summary>Returns a warning about the selected model or <c>null</c>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObjectGUI.DoAnimatorSelectorGUI(Animancer.Editor.Previews.AnimancerPreviewObject)">
            <summary>
            Draws a button for selecting which <see cref="T:UnityEngine.Animator"/> to control if there's more than one.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewObjectGUI.HandleDragAndDrop(UnityEngine.Rect,Animancer.Editor.Previews.AnimancerPreviewObject)">
            <summary>Handles drag and drop events for preview models.</summary>
        </member>
        <member name="T:Animancer.Editor.Previews.AnimancerPreviewRenderer">
            <summary>[Editor-Only] Utility for rendering previews of animated objects.</summary>
            <remarks>Parts of this class are based on Unity's <see cref="T:UnityEditor.MeshPreview"/>.</remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/AnimancerPreviewRenderer
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerPreviewRenderer.PreviewSceneRoot">
            <summary>The root object in the preview scene.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerPreviewRenderer.EnvironmentInstance">
            <summary>
            An instance of the <see cref="P:Animancer.Editor.Previews.TransitionPreviewSettings.SceneEnvironment"/>.
            A child of the <see cref="P:Animancer.Editor.Previews.AnimancerPreviewRenderer.PreviewSceneRoot"/>.
            </summary>
        </member>
        <member name="P:Animancer.Editor.Previews.AnimancerPreviewRenderer.PreviewObject">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The object being previewed.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.Dispose">
            <summary>Cleans up this renderer.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.OnEnvironmentPrefabChanged">
            <summary>Calles when the <see cref="P:Animancer.Editor.Previews.TransitionPreviewSettings.SceneEnvironment"/> is changed.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.Animancer#Editor#Previews#AnimancerPreviewObject#IEventHandler#OnInstantiateObject">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.Animancer#Editor#Previews#AnimancerPreviewObject#IEventHandler#OnSetSelectedAnimator">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.Animancer#Editor#Previews#AnimancerPreviewObject#IEventHandler#OnCreateGraph">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.DoGUI(UnityEngine.Rect,UnityEngine.GUIStyle)">
            <summary>Draws the preview.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.DrawIsRenderTextureSupported(UnityEngine.Rect)">
            <summary>Shows a warning if the current device doesn't support render textures.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.InitializePreviewRenderUtility">
            <summary>Initializes the <see cref="F:Animancer.Editor.Previews.AnimancerPreviewRenderer._PreviewRenderUtility"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.CleanupPreviewRenderUtility">
            <summary>Cleans up the <see cref="F:Animancer.Editor.Previews.AnimancerPreviewRenderer._PreviewRenderUtility"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.DrawPreview(UnityEngine.Rect,UnityEngine.GUIStyle)">
            <summary>Updates and renders the preview.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.UpdatePreviewRenderUtility">
            <summary>Updates the preview rendering details.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.HandleCameraControlEvent(UnityEngine.Rect,UnityEngine.Event)">
            <summary>Handles GUI events for controlling the preview camera.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.Drag2D(UnityEngine.Vector2,UnityEngine.Rect)">
            <summary>Handles drag input within a given `area`.</summary>
            <remarks>Copied from Unity's <see cref="M:PreviewGUI.Drag2D(UnityEngine.Vector2,UnityEngine.Rect)"/>.</remarks>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.HandleScrollZoomEvent(UnityEngine.Rect,UnityEngine.Event)">
            <summary>Handles a mouse scroll event to zoom the preview camera.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.HandleDragPanEvent(UnityEngine.Rect,UnityEngine.Event)">
            <summary>Handles a mouse drag event to pan the preview camera.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.AnimancerPreviewRenderer.FrameTarget">
            <summary>Frames the preview object in the middle of the camera.</summary>
        </member>
        <member name="T:Animancer.Editor.Previews.DummyAnimancerComponent">
            <summary>[Editor-Only]
            An <see cref="T:Animancer.IAnimancerComponent"/> which isn't actually a <see cref="T:UnityEngine.Component"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/DummyAnimancerComponent
        </member>
        <member name="M:Animancer.Editor.Previews.DummyAnimancerComponent.#ctor(UnityEngine.Animator,Animancer.AnimancerGraph)">
            <summary>Creates a new <see cref="T:Animancer.Editor.Previews.DummyAnimancerComponent"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.DummyAnimancerComponent.enabled">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Previews.DummyAnimancerComponent.gameObject">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Previews.DummyAnimancerComponent.Animator">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Previews.DummyAnimancerComponent.Graph">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Previews.DummyAnimancerComponent.IsGraphInitialized">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Previews.DummyAnimancerComponent.ResetOnDisable">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Previews.DummyAnimancerComponent.UpdateMode">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.DummyAnimancerComponent.GetKey(UnityEngine.AnimationClip)">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Previews.DummyAnimancerComponent.AnimatorFieldName">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Previews.DummyAnimancerComponent.ActionOnDisableFieldName">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Previews.DummyAnimancerComponent.InitialUpdateMode">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.DummyAnimancerComponent.ToString">
            <summary>Describes this and the <see cref="P:Animancer.Editor.Previews.DummyAnimancerComponent.Animator"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.Previews.TransitionPreviewPlayer">
            <summary>[Editor-Only] Utility for playing through transition previews.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/TransitionPreviewPlayer
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewPlayer.FromTransition">
            <summary>The animation to play first.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewPlayer.ToTransition">
            <summary>The animation to transition into.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewPlayer.Graph">
            <summary>The graph used to play the animations.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewPlayer.FromDuration">
            <summary>
            The minimum amount of time to play the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.FromTransition"/>
            before the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.ToTransition"/> starts (in seconds).
            </summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewPlayer.ToDuration">
            <summary>
            The minimum amount of time to continue playing
            after the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.ToTransition"/> started (in seconds).
            </summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewPlayer.Speed">
            <summary>The speed at which the preview plays.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewPlayer.FadeDuration">
            <summary>The <see cref="P:Animancer.ITransition.FadeDuration"/>.</summary>
            <remarks><see cref="F:System.Single.NaN"/> uses the value from the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.ToTransition"/>.</remarks>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewPlayer.MinTime">
            <summary>The lowest allowed <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.CurrentTime"/>.</summary>
            <remarks>
            This is the lower of the negative <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.FromDuration"/>
            or the negative duration of the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.FromTransition"/>.
            </remarks>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewPlayer.MaxTime">
            <summary>The highest allowed <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.CurrentTime"/>.</summary>
            <remarks>
            This is the higher of the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.ToDuration"/> or <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.FadeDuration"/>
            or the duration of the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.ToTransition"/>.
            </remarks>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewPlayer.RecalculateTimeBounds">
            <summary>Recalculated the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.MinTime"/> and <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.MaxTime"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewPlayer.LerpTimeUnclamped(System.Single)">
            <summary>Converts normalized time to seconds.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewPlayer.InverseLerpTimeUnclamped(System.Single)">
            <summary>Converts seconds to normalized time.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewPlayer.CurrentTime">
            <summary>The amount of time that has passed since the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.ToTransition"/> started (in seconds).</summary>
            <remarks>This value goes from the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.MinTime"/> to the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.MaxTime"/>.</remarks>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewPlayer.NormalizedTime">
            <summary>The amount of time that has passed since the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.ToTransition"/> started (normalized).</summary>
            <remarks>0 is at the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.MinTime"/> and 1 is at the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.MaxTime"/>.</remarks>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewPlayer.IsPlaying">
            <summary>Is the preview currently playing?</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewPlayer.Dispose">
            <summary>Cleans up this player.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewPlayer.TimeSinceStartup">
            <summary><see cref="P:UnityEditor.EditorApplication.timeSinceStartup"/></summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewPlayer.Update">
            <summary>Updates the preview time while playing.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewPlayer.Evaluate">
            <summary>Applies the animations at the <see cref="P:Animancer.Editor.Previews.TransitionPreviewPlayer.CurrentTime"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewPlayer.Apply(System.Single,Animancer.ITransition,Animancer.ITransition)">
            <summary>Applies the animations at the `currentTime`.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewPlayer.Apply(System.Single,System.Single,Animancer.ITransition)">
            <summary>Applies the animation at the `currentTime`.</summary>
        </member>
        <member name="T:Animancer.Editor.Previews.AnimationClipPreview">
            <summary>[Editor-Only] A minimal <see cref="T:Animancer.ITransitionDetailed"/> to preview an <see cref="T:UnityEngine.AnimationClip"/>.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions#previews">
            Previews</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/AnimationClipPreview
            
        </member>
        <member name="T:Animancer.Editor.Previews.TransitionPreviewSettings">
            <summary>Persistent settings for the <see cref="T:Animancer.Editor.Previews.TransitionPreviewWindow"/>.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions#previews">
            Previews</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/TransitionPreviewSettings
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewSettings.DisplayName">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewSettings.Index">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewSettings.DoInspectorGUI">
            <summary>Draws the Inspector GUI for these settings.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewSettings.AutoClose">
            <summary>Should this window automatically close if the target object is destroyed?</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewSettings.SceneLighting">
            <summary>Should the scene lighting be enabled?</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewSettings.ShowSkybox">
            <summary>Should the skybox be visible?</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewSettings.FrameStep">
            <summary>The amount of time that will be added by a single frame step (in seconds).</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewSettings.SceneEnvironment">
            <summary>If set, the default preview scene lighting will be replaced with this prefab.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewSettings.Models">
            <summary>The models previously used in the <see cref="T:Animancer.Editor.Previews.TransitionPreviewWindow"/>.</summary>
            <remarks>Accessing this property removes missing and duplicate models from the list.</remarks>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewSettings.AddModel(UnityEngine.GameObject)">
            <summary>Adds a `model` to the list of preview models.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewSettings.GetDefaultHumanoidIfAlreadyLoaded">
            <summary>
            Returns the default preview object for Humanoid animations
            if it has already been loaded.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewSettings.GetOrCreateDefaultHumanoid(UnityEngine.Transform)">
            <summary>Returns the default preview object for Humanoid animations.</summary>
            <remarks>A `parent` is only required if Animancer's or Unity's default objects fail to load.</remarks>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewSettings.GetDefaultSpriteIfAlreadyCreated">
            <summary>
            Returns the default preview object for <see cref="T:UnityEngine.Sprite"/> animations
            if it has already been created.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewSettings.GetOrCreateDefaultSprite(UnityEngine.Transform)">
            <summary>Returns the default preview object for <see cref="T:UnityEngine.Sprite"/> animations.</summary>
            <remarks>A `parent` is required to create the object.</remarks>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewSettings.TrySelectBestModel(System.Object,UnityEngine.Transform)">
            <summary>
            Tries to choose the most appropriate model to use
            based on the properties animated by the `animationClipSource`.
            </summary>
        </member>
        <member name="T:Animancer.Editor.Previews.TransitionPreviewWindow">
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/TransitionPreviewWindow
            <summary>[Editor-Only]
            An <see cref="T:UnityEditor.EditorWindow"/> which allows the user to preview animation transitions separately from the rest
            of the scene in Edit Mode or Play Mode.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions#previews">
            Previews</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/TransitionPreviewWindow
            
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/TransitionPreviewWindow
            https://kybernetik.com.au/animancer/api/Animancer.Editor.Previews/TransitionPreviewWindow
        </member>
        <member name="T:Animancer.Editor.Previews.TransitionPreviewWindow.Animations">
            <summary>Animation details for the <see cref="T:Animancer.Editor.Previews.TransitionPreviewWindow"/>.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions#previews">
            Previews</see>
            </remarks>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewWindow.Icon">
            <summary>The icon image used by this window.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.OpenOrClose(UnityEditor.SerializedProperty)">
            <summary>
            Focusses the <see cref="T:Animancer.Editor.Previews.TransitionPreviewWindow"/> or creates one if none exists.
            Or closes the existing window if it was already previewing the `transitionProperty`.
            </summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewWindow.PreviewNormalizedTime">
            <summary>
            The <see cref="P:Animancer.AnimancerState.NormalizedTime"/> of the current transition. Can only be set if the property
            being previewed matches the current <see cref="P:Animancer.Editor.TransitionDrawer.Context"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.GetCurrentState">
            <summary>
            Returns the <see cref="T:Animancer.AnimancerState"/> of the current transition if the property being previewed matches
            the <see cref="P:Animancer.Editor.TransitionDrawer.Context"/>. Otherwise returns null.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.IsPreviewingCurrentProperty">
            <summary>
            Is the current <see cref="F:Animancer.Editor.TransitionDrawer.DrawerContext.Property"/> being previewed at the moment?
            </summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.IsPreviewing(UnityEditor.SerializedProperty)">
            <summary>Is the `property` being previewed at the moment?</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.OnEnable">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.OnDisable">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.OnDestroy">
            <summary>Cleans up this window.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.OnSceneGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.Update">
            <summary>Called multiple times per second while this window is visible.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.SupportsStageHandling">
            <summary>Returns false.</summary>
            <remarks>Returning true makes it draw the main scene instead of the custom scene in Unity 2020.</remarks>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewWindow.TransitionProperty">
            <summary>The <see cref="T:UnityEditor.SerializedProperty"/> currently being previewed.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewWindow.Transition">
            <summary>The <see cref="T:Animancer.ITransitionDetailed"/> currently being previewed.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.CanBePreviewed(UnityEditor.SerializedProperty)">
            <summary>Indicates whether the `property` is able to be previewed by this system.</summary>
        </member>
        <member name="T:Animancer.Editor.Previews.TransitionPreviewWindow.Inspector">
            <summary>[Internal] Custom Inspector for the <see cref="T:Animancer.Editor.Previews.TransitionPreviewWindow"/>.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions#previews">
            Previews</see>
            </remarks>
        </member>
        <member name="F:Animancer.Editor.Previews.TransitionPreviewWindow.Inspector.CloseTooltip">
            <summary>The tooltip used for the Close button.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.Inspector.DoTransitionPropertyGUI">
            <summary>Draws the target object and path of the <see cref="P:Animancer.Editor.Previews.TransitionPreviewWindow.TransitionProperty"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewWindow.InstanceScene">
            <summary>The <see cref="T:Animancer.Editor.Previews.TransitionPreviewWindow.Scene"/> of the current <see cref="T:Animancer.Editor.Previews.TransitionPreviewWindow"/> instance.</summary>
        </member>
        <member name="T:Animancer.Editor.Previews.TransitionPreviewWindow.Scene">
            <summary>Temporary scene management for the <see cref="T:Animancer.Editor.Previews.TransitionPreviewWindow"/>.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions#previews">
            Previews</see>
            </remarks>
        </member>
        <member name="F:Animancer.Editor.Previews.TransitionPreviewWindow.Scene._Scene">
            <summary>The scene displayed by the <see cref="T:Animancer.Editor.Previews.TransitionPreviewWindow"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.PreviewSceneRoot">
            <summary>The root object in the preview scene.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.InstanceRoot">
            <summary>The root of the model in the preview scene. A child of the <see cref="P:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.PreviewSceneRoot"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.EnvironmentInstance">
            <summary>
            An instance of the <see cref="P:Animancer.Editor.Previews.TransitionPreviewSettings.SceneEnvironment"/>.
            A child of the <see cref="P:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.PreviewSceneRoot"/>.
            </summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.PreviewObject">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The object being previewed.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.OnEnable">
            <summary>Initializes this <see cref="T:Animancer.Editor.Previews.TransitionPreviewWindow.Scene"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.Animancer#Editor#Previews#AnimancerPreviewObject#IEventHandler#OnInstantiateObject">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.Animancer#Editor#Previews#AnimancerPreviewObject#IEventHandler#OnSetSelectedAnimator">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.Animancer#Editor#Previews#AnimancerPreviewObject#IEventHandler#OnCreateGraph">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.OnTargetPropertyChanged">
            <summary>Called when the target transition property is changed.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.OnGUI">
            <summary>Called when the window GUI is drawn.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.IsSceneObject(UnityEngine.Object)">
            <summary>Is the `obj` a <see cref="T:UnityEngine.GameObject"/> in the preview scene?</summary>
        </member>
        <member name="P:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.ExpandedHierarchy">
            <summary>A list of all objects with their child hierarchy expanded.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.OnDisable">
            <summary>Called by <see cref="M:Animancer.Editor.Previews.TransitionPreviewWindow.OnDisable"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Previews.TransitionPreviewWindow.Scene.OnDestroy">
            <summary>Called by <see cref="M:Animancer.Editor.Previews.TransitionPreviewWindow.OnDestroy"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.AnimancerEventInvokerEditor">
            <summary>[Editor-Only] A custom Inspector for <see cref="T:Animancer.AnimancerEvent.Invoker"/>s.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/AnimancerEventInvokerEditor
            
        </member>
        <member name="M:Animancer.Editor.AnimancerEventInvokerEditor.OnInspectorGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.BaseAnimancerComponentEditor">
            <summary>[Editor-Only] A custom Inspector for <see cref="T:Animancer.IAnimancerComponent"/>s.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/BaseAnimancerComponentEditor
        </member>
        <member name="P:Animancer.Editor.BaseAnimancerComponentEditor.Targets">
            <summary><see cref="P:UnityEditor.Editor.targets"/> casted to <see cref="T:Animancer.IAnimancerComponent"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.BaseAnimancerComponentEditor.OnEnable">
            <summary>Initializes this <see cref="T:UnityEditor.Editor"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.BaseAnimancerComponentEditor.GatherTargets">
            <summary>
            Copies the <see cref="P:UnityEditor.Editor.targets"/> into the <see cref="F:Animancer.Editor.BaseAnimancerComponentEditor._Targets"/> array.
            </summary>
        </member>
        <member name="M:Animancer.Editor.BaseAnimancerComponentEditor.OnInspectorGUI">
            <summary>Called by the Unity editor to draw the custom Inspector GUI elements.</summary>
        </member>
        <member name="M:Animancer.Editor.BaseAnimancerComponentEditor.DoSerializedFieldsGUI">
            <summary>Draws the rest of the Inspector fields after the Animator field.</summary>
        </member>
        <member name="M:Animancer.Editor.BaseAnimancerComponentEditor.DoOverridePropertyGUI(System.String,UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <summary>[Editor-Only]
            Draws any custom GUI for the `property`.
            The return value indicates whether the GUI should replace the regular call to
            <see cref="M:UnityEditor.EditorGUILayout.PropertyField(UnityEditor.SerializedProperty,UnityEngine.GUIContent,System.Boolean,UnityEngine.GUILayoutOption[])"/>. 
            True = GUI was drawn, so don't draw the regular GUI. 
            False = Draw the regular GUI.
            </summary>
        </member>
        <member name="T:Animancer.Editor.CachedEditor">
            <summary>[Editor-Only]
            A utility for manually drawing a <see cref="T:UnityEditor.Editor"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/CachedEditor
        </member>
        <member name="M:Animancer.Editor.CachedEditor.GetEditor(UnityEngine.Object)">
            <summary>
            Creates a <see cref="T:UnityEditor.Editor"/> for the `target`
            and caches it to be returned by subsequent calls with the same `target`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.CachedEditor.GetEditor(UnityEngine.Object[])">
            <summary>
            Creates a <see cref="T:UnityEditor.Editor"/> for the `targets`
            and caches it to be returned by subsequent calls with the same `targets`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.CachedEditor.Dispose">
            <summary>Destroys the cached <see cref="T:UnityEditor.Editor"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.CachedEditor.EnsureCleanup">
            <summary>Ensures that <see cref="M:Animancer.Editor.CachedEditor.Dispose"/> will be called before assemblies are reloaded.</summary>
        </member>
        <member name="T:Animancer.Editor.SoloAnimationEditor">
            <summary>[Editor-Only] A custom Inspector for <see cref="T:Animancer.SoloAnimationInternal"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/SoloAnimationEditor
        </member>
        <member name="P:Animancer.Editor.SoloAnimationEditor.Target">
            <summary>The <see cref="P:UnityEditor.Editor.target"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.SoloAnimationEditor.Targets">
            <summary>The <see cref="P:UnityEditor.Editor.targets"/>.</summary>
        </member>
        <member name="F:Animancer.Editor.SoloAnimationEditor._Animators">
            <summary>The animator referenced by each target.</summary>
        </member>
        <member name="F:Animancer.Editor.SoloAnimationEditor._SerializedAnimator">
            <summary>A <see cref="T:UnityEditor.SerializedObject"/> encapsulating the <see cref="F:Animancer.Editor.SoloAnimationEditor._Animators"/>.</summary>
        </member>
        <member name="F:Animancer.Editor.SoloAnimationEditor._KeepStateOnDisable">
            <summary>The <see cref="P:UnityEngine.Animator.keepAnimatorStateOnDisable"/> property.</summary>
        </member>
        <member name="F:Animancer.Editor.SoloAnimationEditor.KeeyStateOnDisableField">
            <summary>The backing field of the <see cref="P:UnityEngine.Animator.keepAnimatorStateOnDisable"/> property.</summary>
        </member>
        <member name="M:Animancer.Editor.SoloAnimationEditor.OnEnable">
            <summary>Initializes the targets.</summary>
        </member>
        <member name="M:Animancer.Editor.SoloAnimationEditor.OnInspectorGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.SoloAnimationEditor.DoSerializedFieldsGUI">
            <summary>Draws the target's serialized fields.</summary>
        </member>
        <member name="M:Animancer.Editor.SoloAnimationEditor.RefreshSerializedAnimator">
            <summary>Ensures that the cached references relating to the target's <see cref="T:UnityEngine.Animator"/> are correct.</summary>
        </member>
        <member name="M:Animancer.Editor.SoloAnimationEditor.DoStopOnDisableGUI">
            <summary>
            Draws a toggle inverted from the <see cref="P:UnityEngine.Animator.keepAnimatorStateOnDisable"/> field.
            </summary>
        </member>
        <member name="M:Animancer.Editor.SoloAnimationEditor.DoRuntimeDetailsGUI">
            <summary>Draws the target's runtime details.</summary>
        </member>
        <member name="M:Animancer.Editor.SoloAnimationEditor.OnDisable">
            <summary>Cleans up cached references relating to the target's <see cref="T:UnityEngine.Animator"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.SpriteEditor">
            <summary>[Editor-Only]
            A custom Inspector for <see cref="T:UnityEngine.Sprite"/>s which allows you to directly edit them instead of just showing
            their details like the default one does.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/SpriteEditor
        </member>
        <member name="M:Animancer.Editor.SpriteEditor.OnEnable">
            <summary>Initializes this editor.</summary>
        </member>
        <member name="M:Animancer.Editor.SpriteEditor.OnDisable">
            <summary>Cleans up this editor.</summary>
        </member>
        <member name="P:Animancer.Editor.SpriteEditor.AllSpriteModeMultiple">
            <summary>Are all targets set to <see cref="F:UnityEditor.SpriteImportMode.Multiple"/>?</summary>
        </member>
        <member name="M:Animancer.Editor.SpriteEditor.OnInspectorGUI">
            <summary>Called by the Unity editor to draw the custom Inspector GUI elements.</summary>
        </member>
        <member name="T:Animancer.Editor.SpriteEditor.NormalizedPixelField">
            <summary>
            A wrapper around a <see cref="T:UnityEditor.SerializedProperty"/> to display it using two float fields where one is
            normalized and the other is not.
            </summary>
        </member>
        <member name="F:Animancer.Editor.SpriteEditor.NormalizedPixelField.Property">
            <summary>The target property.</summary>
        </member>
        <member name="F:Animancer.Editor.SpriteEditor.NormalizedPixelField.Label">
            <summary>The label to display next to the property.</summary>
        </member>
        <member name="F:Animancer.Editor.SpriteEditor.NormalizedPixelField.IsNormalized">
            <summary>Is the serialized property value normalized?</summary>
        </member>
        <member name="F:Animancer.Editor.SpriteEditor.NormalizedPixelField.normalizeMultiplier">
            <summary>The multiplier to turn a non-normalized value into a normalized one.</summary>
        </member>
        <member name="M:Animancer.Editor.SpriteEditor.NormalizedPixelField.#ctor(UnityEditor.SerializedProperty,UnityEngine.GUIContent,System.Boolean)">
            <summary>Creates a new <see cref="T:Animancer.Editor.SpriteEditor.NormalizedPixelField"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SpriteEditor.NormalizedPixelField.DoGroupGUI(UnityEditor.SerializedProperty,UnityEngine.GUIContent,Animancer.Editor.SpriteEditor.NormalizedPixelField[])">
            <summary>Draws a group of <see cref="T:Animancer.Editor.SpriteEditor.NormalizedPixelField"/>s.</summary>
        </member>
        <member name="M:Animancer.Editor.SpriteEditor.NormalizedPixelField.DoTwinFloatFieldGUI(UnityEngine.Rect)">
            <summary>Draws this <see cref="T:Animancer.Editor.SpriteEditor.NormalizedPixelField"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SpriteEditor.NormalizedPixelFieldAttributeDrawer.GetLineCount(UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.SpriteEditor.GetInfoString">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.SpriteEditor.RenderStaticPreview(System.String,UnityEngine.Object[],System.Int32,System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.SpriteEditor.HasPreviewGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.SpriteEditor.OnPreviewGUI(UnityEngine.Rect,UnityEngine.GUIStyle)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.StringAssetEditor">
            <summary>[Editor-Only] A custom Inspector for <see cref="T:Animancer.StringAssetInternal"/>s.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/StringAssetEditor
        </member>
        <member name="M:Animancer.Editor.StringAssetEditor.OnInspectorGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.ObjectHighlightGUI">
            <summary>[Editor-Only]
            Allows any object to be highlighted in the GUI like with
            <see cref="M:UnityEditor.EditorGUIUtility.PingObject(UnityEngine.Object)"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ObjectHighlightGUI
            
        </member>
        <member name="F:Animancer.Editor.ObjectHighlightGUI.ExpandDuration">
            <summary>The highlight will start by expanding then contracting over this duration.</summary>
        </member>
        <member name="F:Animancer.Editor.ObjectHighlightGUI.LingerDuration">
            <summary>After the <see cref="F:Animancer.Editor.ObjectHighlightGUI.ExpandDuration"/> the highlight will fade out over this duration.</summary>
        </member>
        <member name="F:Animancer.Editor.ObjectHighlightGUI.HighlightSize">
            <summary>The size that the highlight expands to.</summary>
        </member>
        <member name="F:Animancer.Editor.ObjectHighlightGUI.HighlightColor">
            <summary>The colour used to highlight the pinged object.</summary>
        </member>
        <member name="P:Animancer.Editor.ObjectHighlightGUI.CurrentTime">
            <summary><see cref="P:UnityEditor.EditorApplication.timeSinceStartup"/></summary>
        </member>
        <member name="P:Animancer.Editor.ObjectHighlightGUI.Target">
            <summary>The object currently being highlighted.</summary>
        </member>
        <member name="P:Animancer.Editor.ObjectHighlightGUI.StartTime">
            <summary>The time when the highlight was started.</summary>
        </member>
        <member name="M:Animancer.Editor.ObjectHighlightGUI.Highlight(System.Object)">
            <summary>Sets the target object to start highlighting it.</summary>
        </member>
        <member name="M:Animancer.Editor.ObjectHighlightGUI.Draw(UnityEngine.Rect,System.Object)">
            <summary>Draws the highlight if the given `target` is the current <see cref="P:Animancer.Editor.ObjectHighlightGUI.Target"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.PolymorphicDrawer">
            <summary>[Editor-Only]
            A <see cref="T:UnityEditor.PropertyDrawer"/> for <see cref="T:Animancer.IPolymorphic"/> and <see cref="T:Animancer.PolymorphicAttribute"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/PolymorphicDrawer
        </member>
        <member name="M:Animancer.Editor.PolymorphicDrawer.GetPropertyHeight(UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.PolymorphicDrawer.OnGUI(UnityEngine.Rect,UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.PolymorphicDrawerDetails">
            <summary>[Editor-Only]
            An assembly attribute for configuring how the <see cref="T:Animancer.Editor.PolymorphicDrawer"/>
            displays a particular type.
            </summary>
        </member>
        <member name="F:Animancer.Editor.PolymorphicDrawerDetails.Default">
            <summary>A default instance.</summary>
        </member>
        <member name="F:Animancer.Editor.PolymorphicDrawerDetails.Type">
            <summary>The <see cref="T:System.Type"/> this attribute applies to.</summary>
        </member>
        <member name="M:Animancer.Editor.PolymorphicDrawerDetails.#ctor(System.Type)">
            <summary>Creates a new <see cref="T:Animancer.Editor.PolymorphicDrawerDetails"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.PolymorphicDrawerDetails.SeparateHeader">
            <summary>
            Should the label and <see cref="T:Animancer.Editor.TypeSelectionButton"/>
            be drawn on a separate line before the field's regular GUI?
            </summary>
        </member>
        <member name="M:Animancer.Editor.PolymorphicDrawerDetails.#cctor">
            <summary>Gathers all instances of this attribute in all currently loaded assemblies.</summary>
        </member>
        <member name="M:Animancer.Editor.PolymorphicDrawerDetails.Get(System.Type)">
            <summary>
            Returns the <see cref="T:Animancer.Editor.PolymorphicDrawerDetails"/> associated with the `type` or any of its base types.
            Returns <c>null</c> if none of them have any details.
            </summary>
        </member>
        <member name="M:Animancer.Editor.PolymorphicDrawerDetails.Get(System.Object)">
            <summary>
            Returns the <see cref="T:Animancer.Editor.PolymorphicDrawerDetails"/> associated with the `obj` or any of its base types.
            Returns <c>null</c> if none of them have any details.
            </summary>
        </member>
        <member name="T:Animancer.Editor.TypeSelectionButton">
            <summary>[Editor-Only]
            A button that allows the user to select an object type for a [<see cref="T:UnityEngine.SerializeReference"/>] field.
            </summary>
            
            <remarks>
            <strong>Example:</strong>
            <code>
            public override void OnGUI(Rect area, SerializedProperty property, GUIContent label)
            {
                using (new TypeSelectionButton(area, property, label, true))
                {
                    EditorGUI.PropertyField(area, property, label, true);
                }
            }
            </code></remarks>
            
            https://kybernetik.com.au/animancer/api/Animancer.Editor/TypeSelectionButton
            
        </member>
        <member name="F:Animancer.Editor.TypeSelectionButton.Area">
            <summary>The pixel area occupied by the button.</summary>
        </member>
        <member name="F:Animancer.Editor.TypeSelectionButton.Property">
            <summary>The <see cref="T:UnityEditor.SerializedProperty"/> representing the attributed field.</summary>
        </member>
        <member name="F:Animancer.Editor.TypeSelectionButton.EventType">
            <summary>The original <see cref="P:UnityEngine.Event.type"/> from when this button was initialized.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionButton.#ctor(UnityEngine.Rect,UnityEditor.SerializedProperty,System.Boolean)">
            <summary>Creates a new <see cref="T:Animancer.Editor.TypeSelectionButton"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionButton.DoGUI">
            <summary>Draws this button's GUI.</summary>
            <remarks>Run this method after drawing the target property so the button draws on top of its label.</remarks>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionButton.PrepareSharedReferenceArea(UnityEngine.Rect@,UnityEngine.Rect@,System.Object@,System.Collections.Generic.List{Animancer.Editor.SharedReferenceCache.Field}@)">
            <summary>Allocates an area for <see cref="M:Animancer.Editor.TypeSelectionButton.DoSharedReferenceGUI(UnityEngine.Rect,System.Object,System.Collections.Generic.List{Animancer.Editor.SharedReferenceCache.Field},UnityEngine.EventType)"/> if the `value` is shared.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionButton.DoSharedReferenceGUI(UnityEngine.Rect,System.Object,System.Collections.Generic.List{Animancer.Editor.SharedReferenceCache.Field},UnityEngine.EventType)">
            <summary>Draws a toggle to enable/disable visualisation of the `value`'s shared references.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionButton.GetTooltip(System.Collections.Generic.List{Animancer.Editor.SharedReferenceCache.Field},UnityEngine.EventType)">
            <summary>Builds a tooltip describing the `references`.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionButton.BeginDelayingLinkLines">
            <summary>
            Any shared reference link lines which would be drawn after this call are instead
            delayed until the corresponding <see cref="M:Animancer.Editor.TypeSelectionButton.EndDelayingLinkLines"/> call.
            </summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionButton.EndDelayingLinkLines">
            <summary>
            Ends a block started by <see cref="M:Animancer.Editor.TypeSelectionButton.BeginDelayingLinkLines"/>.
            When all such blocks are cancelled, this method draws all delayed links between shared reference fields.
            </summary>
        </member>
        <member name="T:Animancer.Editor.TypeSelectionButton.LinkLine">
            <summary>The details needed to draw a line between fields which share the same reference.</summary>
        </member>
        <member name="F:Animancer.Editor.TypeSelectionButton.LinkLine.SharedButtonArea">
            <summary>The area of the button which toggles visibility of link lines.</summary>
        </member>
        <member name="F:Animancer.Editor.TypeSelectionButton.LinkLine.Path">
            <summary>The property path of the target field.</summary>
        </member>
        <member name="F:Animancer.Editor.TypeSelectionButton.LinkLine.References">
            <summary>The shared reference cache for the target field.</summary>
        </member>
        <member name="F:Animancer.Editor.TypeSelectionButton.LinkLine.Color">
            <summary>The color of the link line.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionButton.LinkLine.#ctor(UnityEngine.Rect,System.String,System.Collections.Generic.List{Animancer.Editor.SharedReferenceCache.Field},UnityEngine.Color)">
            <summary>Creates a new <see cref="T:Animancer.Editor.TypeSelectionButton.LinkLine"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionButton.LinkLine.Draw">
            <summary>Draws a line between the current field and the the previous field referencing the same value.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionButton.LinkLine.SetArea(System.Collections.Generic.List{Animancer.Editor.SharedReferenceCache.Field},System.String,UnityEngine.Rect)">
            <summary>Sets the <see cref="F:Animancer.Editor.SharedReferenceCache.Field.area"/> of the current field.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionButton.LinkLine.GetLeftCenter(UnityEngine.Rect)">
            <summary>Returns the center point of the left edge of the `rect`.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionButton.LinkLine.DrawCurve(UnityEngine.Vector2,UnityEngine.Vector2)">
            <summary>Draws a line between `a` and `b` curved towards x = 0.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionButton.LinkLine.CalculateCurveWidth(System.Single)">
            <summary>
            Calculates the desired width for a curve with the given `height`
            as a portion of the total available width.
            </summary>
        </member>
        <member name="T:Animancer.Editor.TypeSelectionMenu">
            <summary>[Editor-Only] A context menu for selecting a <see cref="T:System.Type"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/TypeSelectionMenu
        </member>
        <member name="F:Animancer.Editor.TypeSelectionMenu.VisualiseSharedReferences">
            <summary>Should shared references be shown in the GUI?</summary>
        </member>
        <member name="F:Animancer.Editor.TypeSelectionMenu.UseFullNames">
            <summary>Should full type names be displayed?</summary>
        </member>
        <member name="F:Animancer.Editor.TypeSelectionMenu.UseTypeHierarchy">
            <summary>Should options be grouped in sub menus based on their inheritance hierarchy?</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionMenu.Show(UnityEditor.SerializedProperty)">
            <summary>Shows a menu to select which type of object to assign to the `property`.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionMenu.AddPrefs(UnityEditor.GenericMenu)">
            <summary>Adds items for toggling the display options.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionMenu.AddDocumentation(UnityEditor.GenericMenu,System.Type)">
            <summary>Adds an itme for opening the documentation if a <see cref="T:UnityEngine.HelpURLAttribute"/> is present.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionMenu.AddSharedReferences(UnityEditor.GenericMenu,UnityEditor.SerializedProperty,System.Type,System.Object)">
            <summary>Adds items for selecting shared references.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionMenu.GetObjectsAndPaths(UnityEditor.SerializedObject,System.Type)">
            <summary>Gathers all potential references that could be shared.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionMenu.AddTypeSelector(UnityEditor.GenericMenu,UnityEditor.SerializedProperty,System.Type,System.Type,System.Type)">
            <summary>Adds a menu function to assign a new instance of the `newType` to the `property`.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionMenu.GetDerivedTypes(System.Type)">
            <summary>Returns a list of all types that inherit from the `baseType`.</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionMenu.IsViableType(System.Type)">
            <summary>Is the `type` supported by <see cref="T:UnityEngine.SerializeReference"/> fields?</summary>
        </member>
        <member name="M:Animancer.Editor.TypeSelectionMenu.CopyCommonFields(System.Object,System.Object)">
            <summary>
            Copies the values of all fields in `from` into corresponding fields in `to` as long as they have the same
            name and compatible types.
            </summary>
        </member>
        <member name="T:Animancer.Editor.PooledGUIContent">
            <summary>[Editor-Only]
            <see cref="T:UnityEngine.GUIContent"/> with <see cref="T:System.IDisposable"/> connected to an <see cref="T:Animancer.ObjectPool`1"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/PooledGUIContent
        </member>
        <member name="M:Animancer.Editor.PooledGUIContent.Acquire(System.String,System.String,UnityEngine.Texture)">
            <summary><see cref="M:Animancer.ObjectPool`1.Acquire"/>s and initializes an instance.</summary>
        </member>
        <member name="M:Animancer.Editor.PooledGUIContent.Acquire(UnityEditor.SerializedProperty)">
            <summary><see cref="M:Animancer.ObjectPool`1.Acquire"/>s and initializes an instance.</summary>
        </member>
        <member name="M:Animancer.Editor.PooledGUIContent.Dispose">
            <summary><see cref="M:Animancer.ObjectPool`1.Release(`0)"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.PooledGUIContent.Pool">
            <summary>An <see cref="T:Animancer.ObjectPool`1"/> for <see cref="T:Animancer.Editor.PooledGUIContent"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/Pool
        </member>
        <member name="F:Animancer.Editor.PooledGUIContent.Pool.Instance">
            <summary>Singleton instance.</summary>
        </member>
        <member name="M:Animancer.Editor.PooledGUIContent.Pool.New">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.PooledGUIContent.Pool.Acquire">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.PooledGUIContent.Pool.Release(Animancer.Editor.PooledGUIContent)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.PropertyDrawers">
            <summary>[Editor-Only] A cache of <see cref="T:UnityEditor.PropertyDrawer"/>s mapped to their target type.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/PropertyDrawers
        </member>
        <member name="M:Animancer.Editor.PropertyDrawers.TryGetDrawer(System.Type,System.Reflection.FieldInfo,System.Attribute,UnityEditor.PropertyDrawer@)">
            <summary>Tries to get a <see cref="T:UnityEditor.PropertyDrawer"/> for the given `objectType`.</summary>
        </member>
        <member name="T:Animancer.Editor.PropertyDrawers.IDiscardOnSelectionChange">
            <summary>[Editor-Only]
            Indicates that a cached <see cref="T:UnityEditor.PropertyDrawer"/>
            should not be kept in the cache after the selection changes.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/IDiscardOnSelectionChange
        </member>
        <member name="M:Animancer.Editor.PropertyDrawers.OnSelectionChanged">
            <summary>Discards any cached <see cref="T:Animancer.Editor.PropertyDrawers.IDiscardOnSelectionChange"/> drawers.</summary>
        </member>
        <member name="M:Animancer.Editor.PropertyDrawers.DiscardOnSelectionChanged(System.Collections.Generic.Dictionary{System.Type,UnityEditor.PropertyDrawer})">
            <summary>Discards any cached <see cref="T:Animancer.Editor.PropertyDrawers.IDiscardOnSelectionChange"/> drawers.</summary>
        </member>
        <member name="T:Animancer.Editor.TableGUI">
            <summary>[Editor-Only] Utility for drawing tables.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/TableGUI
        </member>
        <member name="P:Animancer.Editor.TableGUI.Padding">
            <summary>The pixel spacing between cells.</summary>
        </member>
        <member name="P:Animancer.Editor.TableGUI.HorizontalScrollBar">
            <summary>The style for the horizontal scroll bar.</summary>
        </member>
        <member name="P:Animancer.Editor.TableGUI.VerticalScrollBar">
            <summary>The style for the vertical scroll bar.</summary>
        </member>
        <member name="T:Animancer.Editor.TableGUI.CellGUIDelegate">
            <summary>Draws the GUI for a specified cell.</summary>
            <remarks>`column` and `row` are given <c>-1</c> for the labels.</remarks>
        </member>
        <member name="F:Animancer.Editor.TableGUI.DoCellGUI">
            <summary>Draws the GUI for a specified cell.</summary>
            <remarks>`column` and `row` are given <c>-1</c> for the labels.</remarks>
        </member>
        <member name="P:Animancer.Editor.TableGUI.MinCellSize">
            <summary>The minimum pixel size of each cell.</summary>
        </member>
        <member name="P:Animancer.Editor.TableGUI.MaxCellSize">
            <summary>The maximum pixel size of each cell.</summary>
        </member>
        <member name="P:Animancer.Editor.TableGUI.LabelSize">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The normalized size of the header labels.</summary>
        </member>
        <member name="P:Animancer.Editor.TableGUI.ScrollPosition">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The position the table is currently scrolled to.</summary>
        </member>
        <member name="M:Animancer.Editor.TableGUI.DoTableGUI(UnityEngine.Rect,System.Int32,System.Int32)">
            <summary>Draws this table.</summary>
        </member>
        <member name="M:Animancer.Editor.TableGUI.CalculateSizes(UnityEngine.Rect,System.Int32,System.Int32,UnityEngine.Vector2@,UnityEngine.Vector2@)">
            <summary>Calculates the current label and cell sizes for the given `area`.</summary>
        </member>
        <member name="P:Animancer.Editor.TableGUI.CalculateWidestLabel">
            <summary>A delegate to calculate the largest pixel width of the header labels.</summary>
        </member>
        <member name="T:Animancer.Editor.EditableFieldDrawer">
            <summary>[Editor-Only] A <see cref="T:UnityEditor.PropertyDrawer"/> which adds an "Edit" button to a field.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/EditableFieldDrawer
            https://kybernetik.com.au/flexi-motion/api/FlexiMotion.Editor/EditableFieldDrawer
        </member>
        <member name="E:Animancer.Editor.EditableFieldDrawer.OnEdit">
            <summary>The method to call when the "Edit" button is clicked.</summary>
            <remarks>Set this in a custom editor before drawing the attributed field then clear it afterwards.</remarks>
        </member>
        <member name="M:Animancer.Editor.EditableFieldDrawer.GetPropertyHeight(UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.EditableFieldDrawer.OnGUI(UnityEngine.Rect,UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.EditableFieldDrawer.GetEditButtonLabel(UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <summary>Sets the `label` for the "Edit" button.</summary>
        </member>
        <member name="T:Animancer.Editor.ITransformTreeViewSource">
            <summary>An object that provides data to a <see cref="T:Animancer.Editor.TransformTreeView"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/ITransformTreeViewSource
            https://kybernetik.com.au/flexi-motion/api/FlexiMotion.Editor/ITransformTreeViewSource
        </member>
        <member name="P:Animancer.Editor.ITransformTreeViewSource.Root">
            <summary>The object at the top of the target hierarchy.</summary>
        </member>
        <member name="P:Animancer.Editor.ITransformTreeViewSource.Transforms">
            <summary>The objects to show in the view.</summary>
        </member>
        <member name="M:Animancer.Editor.ITransformTreeViewSource.AddItems(System.Int32@,UnityEditor.IMGUI.Controls.TreeViewItem)">
            <summary>Adds the items to be displayed in the view.</summary>
        </member>
        <member name="M:Animancer.Editor.ITransformTreeViewSource.AddItem(System.Int32@,UnityEditor.IMGUI.Controls.TreeViewItem,UnityEngine.Transform)">
            <summary>Adds an item for the `transform` to be displayed in the view.</summary>
        </member>
        <member name="M:Animancer.Editor.ITransformTreeViewSource.BeforeRowGUI(UnityEngine.Rect,UnityEditor.IMGUI.Controls.TreeViewItem)">
            <summary>Called before a row is drawn.</summary>
        </member>
        <member name="M:Animancer.Editor.ITransformTreeViewSource.DrawCellGUI(UnityEngine.Rect,System.Int32,System.Int32,UnityEditor.IMGUI.Controls.TreeViewItem,System.Boolean@)">
            <summary>Draws a cell in the <see cref="T:UnityEditor.IMGUI.Controls.TreeView"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.TransformTreeView">
            <summary>A <see cref="T:UnityEditor.IMGUI.Controls.TreeView"/> for displaying <see cref="T:UnityEngine.Transform"/>s alongside other data.</summary>
            https://kybernetik.com.au/flexi-motion/api/Animancer.Editor/TransformTreeView
            https://kybernetik.com.au/flexi-motion/api/FlexiMotion.Editor/TransformTreeView
        </member>
        <member name="F:Animancer.Editor.TransformTreeView.RootID">
            <summary>The ID of the root item.</summary>
        </member>
        <member name="F:Animancer.Editor.TransformTreeView.Source">
            <summary>The object which defines what to show in this view.</summary>
        </member>
        <member name="F:Animancer.Editor.TransformTreeView.Search">
            <summary>The field used to filter this view.</summary>
        </member>
        <member name="F:Animancer.Editor.TransformTreeView.Transforms">
            <summary>The <see cref="T:UnityEngine.Transform"/> of each row in this view.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeView.#ctor(UnityEditor.IMGUI.Controls.TreeViewState,UnityEditor.IMGUI.Controls.MultiColumnHeader,Animancer.Editor.ITransformTreeViewSource)">
            <summary>Creates a new <see cref="T:Animancer.Editor.TransformTreeView"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeView.Dispose">
            <summary>Cleans up this view.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeView.BuildRoot">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransformTreeView.AddItem(System.Int32@,UnityEditor.IMGUI.Controls.TreeViewItem,UnityEngine.Transform)">
            <summary>Adds a new item for the `transform` as a child of the `parent` and increments the `id`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeView.AddItemRecursive(System.Int32@,UnityEditor.IMGUI.Controls.TreeViewItem,UnityEngine.Transform)">
            <summary>Adds a new item for each child of the `transform` recursively.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeView.CreateItem(System.Int32@,System.Int32,System.String)">
            <summary>Creates a new <see cref="T:UnityEditor.IMGUI.Controls.TreeViewItem"/> and increments the `id`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeView.DrawSearchField(UnityEngine.Rect)">
            <summary>Draws the <see cref="T:UnityEditor.IMGUI.Controls.SearchField"/> for filtering this view.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeView.RowGUI(UnityEditor.IMGUI.Controls.TreeView.RowGUIArgs)">
            <inheritdoc/>
        </member>
        <member name="E:Animancer.Editor.TransformTreeView.OnSelectionChanged">
            <summary>Called whenever the selected rows change.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeView.SelectionChanged(System.Collections.Generic.IList{System.Int32})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransformTreeView.OnObjectSelectionChanged">
            <summary>Called whenever the <see cref="P:UnityEditor.Selection.objects"/> change.</summary>
        </member>
        <member name="T:Animancer.Editor.TransformTreeWindow`2">
            <summary>[Editor-Only]
            A <see cref="T:Animancer.Editor.SerializedComponentDataEditorWindow`2"/>
            which displays a <see cref="T:Animancer.Editor.TransformTreeView"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/TransformTreeWindow_2
            https://kybernetik.com.au/flexi-motion/api/FlexiMotion.Editor/TransformTreeWindow_2
        </member>
        <member name="P:Animancer.Editor.TransformTreeWindow`2.HeaderState">
            <summary>The header of the tree view.</summary>
        </member>
        <member name="P:Animancer.Editor.TransformTreeWindow`2.TreeView">
            <summary>The view used to display the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.Data"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.OnEnable">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.OnDisable">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.CaptureData">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.Initialize">
            <summary>
            Initializes this window if the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.SourceObject"/>
            has been set.
            </summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.CreateHeader">
            <summary>Calls <see cref="M:Animancer.Editor.TransformTreeWindow`2.CreateColumns(System.Single)"/> and initializes the tree view header.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.CreateColumns(System.Single)">
            <summary>Creates the columns for the <see cref="P:Animancer.Editor.TransformTreeWindow`2.TreeView"/> to use.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.CreateColumn(System.String,System.String,System.Single)">
            <summary>Creates a column for the <see cref="P:Animancer.Editor.TransformTreeWindow`2.TreeView"/> to use.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.AddItems(System.Int32@,UnityEditor.IMGUI.Controls.TreeViewItem)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.AddItem(System.Int32@,UnityEditor.IMGUI.Controls.TreeViewItem,UnityEngine.Transform)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.OnGUI">
            <summary>Draws the GUI of this window.</summary>
        </member>
        <member name="P:Animancer.Editor.TransformTreeWindow`2.Root">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.TransformTreeWindow`2.Transforms">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.BeforeRowGUI(UnityEngine.Rect,UnityEditor.IMGUI.Controls.TreeViewItem)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.GetRowColor(UnityEditor.IMGUI.Controls.TreeViewItem)">
            <summary>Gets the color of a row in the <see cref="P:Animancer.Editor.TransformTreeWindow`2.TreeView"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.DrawCellGUI(UnityEngine.Rect,System.Int32,System.Int32,UnityEditor.IMGUI.Controls.TreeViewItem,System.Boolean@)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.DrawTransformCellGUI(UnityEngine.Rect,UnityEngine.Transform)">
            <summary>Draws a <see cref="T:UnityEngine.Transform"/> cell.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.DrawIsIncludedCellGUI(UnityEngine.Rect,System.Int32,System.Int32,System.Boolean@)">
            <summary>Draws a cell to toggle whether a particular item is included or not.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.SetIncluded(System.Int32,System.Int32,System.Boolean)">
            <summary>Adds or removes an item from the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.Data"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.SetValue(System.Int32,System.Action{System.Int32})">
            <summary>Sets the value of a field for all selected items.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.GetDefinitionIndex(System.Int32)">
            <summary>
            Gets the index in the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.Data"/>
            corresponding to a row in the <see cref="P:Animancer.Editor.TransformTreeWindow`2.TreeView"/>.
            Returns -1 if the row isn't included.
            </summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.DoFooterGUI">
            <summary>Draws the GUI at the bottom of this window.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.DoFooterCenterGUI">
            <summary>Draws additional GUI controls in the center of the footer.</summary>
        </member>
        <member name="M:Animancer.Editor.TransformTreeWindow`2.Revert">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.WeightedMaskLayersDefinitionDrawer">
            <summary>[Editor-Only] A <see cref="T:UnityEditor.PropertyDrawer"/> for <see cref="T:Animancer.WeightedMaskLayersDefinition"/> fields.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/WeightedMaskLayersDefinitionDrawer
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersDefinitionDrawer.OnGUI(UnityEngine.Rect,UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersDefinitionDrawer.GetEditButtonLabel(UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.WeightedMaskLayersDefinitionWindow">
            <summary>An <see cref="T:Animancer.Editor.TransformTreeWindow`2"/> for editing spring definitions.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/WeightedMaskLayersDefinitionWindow
        </member>
        <member name="P:Animancer.Editor.WeightedMaskLayersDefinitionWindow.Transforms">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.WeightedMaskLayersDefinitionWindow.SourceData">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersDefinitionWindow.CreateColumns(System.Single)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersDefinitionWindow.GetRowColor(UnityEditor.IMGUI.Controls.TreeViewItem)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersDefinitionWindow.GetChainColor(UnityEngine.Transform,System.Collections.Generic.IList{UnityEngine.Transform},System.Single)">
            <summary>Returns a color based on the name of the `transform`'s highest included parent.</summary>
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersDefinitionWindow.GetChainRoot(UnityEngine.Transform,System.Collections.Generic.IList{UnityEngine.Transform})">
            <summary>Gets the highest parent of `transform` which is included in the `transforms`.</summary>
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersDefinitionWindow.DrawCellGUI(UnityEngine.Rect,System.Int32,System.Int32,UnityEditor.IMGUI.Controls.TreeViewItem,System.Boolean@)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersDefinitionWindow.SetIncluded(System.Int32,System.Int32,System.Boolean)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersDefinitionWindow.DoFooterCenterGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersDefinitionWindow.Apply">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersDefinitionWindow.Revert">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersDefinitionWindow.RecordUndo(System.String)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.WeightedMaskLayersFadeDrawer">
            <summary>[Editor-Only] A custom GUI for <see cref="T:Animancer.WeightedMaskLayersInternal.Fade"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/WeightedMaskLayersFadeDrawer
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersFadeDrawer.DoGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.WeightedMaskLayersFadeDrawer.DoDetailsGUI">
            <summary>Draws the GUI for the target's fields.</summary>
        </member>
        <member name="T:Animancer.Editor.BoolPref">
            <summary>[Editor-Only]
            A simple wrapper around <see cref="T:UnityEditor.EditorPrefs"/> to get and set a bool.
            <para></para>
            If you're interested in a more comprehensive pref wrapper that supports more types, you should check out
            <see href="https://kybernetik.com.au/inspector-gadgets/docs/other/auto-prefs">Inspector Gadgets - Auto Prefs</see>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/BoolPref
            
        </member>
        <member name="F:Animancer.Editor.BoolPref.KeyPrefix">
            <summary>The prefix which is automatically added before the <see cref="F:Animancer.Editor.BoolPref.Key"/>.</summary>
        </member>
        <member name="F:Animancer.Editor.BoolPref.Key">
            <summary>The identifier with which this pref will be saved.</summary>
        </member>
        <member name="F:Animancer.Editor.BoolPref.MenuItem">
            <summary>The label to use when adding a function to toggle this pref to a menu.</summary>
        </member>
        <member name="F:Animancer.Editor.BoolPref.DefaultValue">
            <summary>The starting value to use for this pref if none was previously saved.</summary>
        </member>
        <member name="P:Animancer.Editor.BoolPref.Value">
            <summary>The current value of this pref.</summary>
        </member>
        <member name="M:Animancer.Editor.BoolPref.op_Implicit(Animancer.Editor.BoolPref)~System.Boolean">
            <summary>Returns the current value of the `pref`.</summary>
        </member>
        <member name="M:Animancer.Editor.BoolPref.#ctor(System.String,System.Boolean)">
            <summary>Creates a new <see cref="T:Animancer.Editor.BoolPref"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.BoolPref.#ctor(System.String,System.String,System.Boolean)">
            <summary>Creates a new <see cref="T:Animancer.Editor.BoolPref"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.BoolPref.AddToggleFunction(UnityEditor.GenericMenu)">
            <summary>Adds a menu function to toggle the <see cref="P:Animancer.Editor.BoolPref.Value"/> of this pref.</summary>
        </member>
        <member name="M:Animancer.Editor.BoolPref.ToString">
            <summary>Returns a string containing the <see cref="F:Animancer.Editor.BoolPref.Key"/> and <see cref="P:Animancer.Editor.BoolPref.Value"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.SerializableTypeReference">
            <summary>[Editor-Only] A <see cref="T:System.SerializableAttribute"/> reference to a <see cref="P:Animancer.Editor.SerializableTypeReference.Type"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/SerializableTypeReference
        </member>
        <member name="P:Animancer.Editor.SerializableTypeReference.QualifiedName">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The <see cref="P:System.Type.AssemblyQualifiedName"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.SerializableTypeReference.Type">
            <summary>The referenced type.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableTypeReference.#ctor(System.String)">
            <summary>Creates a new <see cref="T:Animancer.Editor.SerializableTypeReference"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableTypeReference.#ctor(System.Type)">
            <summary>Creates a new <see cref="T:Animancer.Editor.SerializableTypeReference"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableTypeReference.OnBeforeSerialize">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.SerializableTypeReference.OnAfterDeserialize">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.SerializableTypeReference.Drawer">
            <summary>[Editor-Only] A <see cref="T:UnityEditor.PropertyDrawer"/> for <see cref="T:Animancer.Editor.SerializableTypeReference"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializableTypeReference.Drawer.GetPropertyHeight(UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.SerializableTypeReference.Drawer.OnGUI(UnityEngine.Rect,UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.MenuFunctionState">
            <summary>[Editor-Only] The possible states for a function in a <see cref="T:UnityEditor.GenericMenu"/>.</summary>
        </member>
        <member name="F:Animancer.Editor.MenuFunctionState.Normal">
            <summary>Displayed normally.</summary>
        </member>
        <member name="F:Animancer.Editor.MenuFunctionState.Selected">
            <summary>Has a check mark next to it to show that it is selected.</summary>
        </member>
        <member name="F:Animancer.Editor.MenuFunctionState.Disabled">
            <summary>Greyed out and unusable.</summary>
        </member>
        <member name="T:Animancer.Editor.Serialization">
            <summary>[Editor-Only] Various serialization utilities.</summary>
            <summary>[Editor-Only] Various serialization utilities.</summary>
            <summary>[Editor-Only] Various serialization utilities.</summary>
        </member>
        <member name="F:Animancer.Editor.Serialization.ArrayDataPrefix">
            <summary>The text used in a <see cref="P:UnityEditor.SerializedProperty.propertyPath"/> to denote array elements.</summary>
        </member>
        <member name="F:Animancer.Editor.Serialization.ArrayDataSuffix">
            <summary>The text used in a <see cref="P:UnityEditor.SerializedProperty.propertyPath"/> to denote array elements.</summary>
        </member>
        <member name="F:Animancer.Editor.Serialization.InstanceBindings">
            <summary>Bindings for Public and Non-Public Instance members.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.GetFriendlyPath(UnityEditor.SerializedProperty)">
            <summary>Returns a user friendly version of the <see cref="P:UnityEditor.SerializedProperty.propertyPath"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.GetValue(UnityEditor.SerializedProperty,System.Object)">
            <summary>Gets the value of the specified <see cref="T:UnityEditor.SerializedProperty"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.GetValue(UnityEditor.SerializedProperty)">
            <summary>Gets the value of the <see cref="T:UnityEditor.SerializedProperty"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.GetValue``1(UnityEditor.SerializedProperty)">
            <summary>Gets the value of the <see cref="T:UnityEditor.SerializedProperty"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.GetValue``1(UnityEditor.SerializedProperty,``0@)">
            <summary>Gets the value of the <see cref="T:UnityEditor.SerializedProperty"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.GetValues``1(UnityEditor.SerializedProperty)">
            <summary>Gets the value of the <see cref="T:UnityEditor.SerializedProperty"/> for each of its target objects.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.IsDefaultValueByType(UnityEditor.SerializedProperty)">
            <summary>Is the value of the `property` the same as the default serialized value for its type?</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.SetValue(UnityEditor.SerializedProperty,System.Object,System.Object)">
            <summary>Sets the value of the specified <see cref="T:UnityEditor.SerializedProperty"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.SetValue(UnityEditor.SerializedProperty,System.Object)">
            <summary>Sets the value of the <see cref="T:UnityEditor.SerializedProperty"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.ResetValue(UnityEditor.SerializedProperty)">
            <summary>
            Resets the value of the <see cref="T:UnityEditor.SerializedProperty"/> to the default value of its type and all its field
            types, ignoring values set by constructors or field initializers.
            </summary>
            <remarks>
            If you want to run constructors and field initializers, you can call
            <see cref="M:Animancer.Editor.Serialization.PropertyAccessor.ResetValue(UnityEditor.SerializedProperty,System.String)"/> instead.
            </remarks>
        </member>
        <member name="M:Animancer.Editor.Serialization.CopyValueFrom(UnityEditor.SerializedProperty,UnityEditor.SerializedProperty)">
            <summary>Copies the value of `from` into `to` (including all nested properties).</summary>
        </member>
        <member name="P:Animancer.Editor.Serialization.GradientValue">
            <summary><c>SerializedProperty.gradientValue</c> is internal.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.GetGradientValue(UnityEditor.SerializedProperty)">
            <summary>Gets the <see cref="T:UnityEngine.Gradient"/> value from a <see cref="F:UnityEditor.SerializedPropertyType.Gradient"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.SetGradientValue(UnityEditor.SerializedProperty,UnityEngine.Gradient)">
            <summary>Sets the <see cref="T:UnityEngine.Gradient"/> value on a <see cref="F:UnityEditor.SerializedPropertyType.Gradient"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.AreSameProperty(UnityEditor.SerializedProperty,UnityEditor.SerializedProperty)">
            <summary>Indicates whether both properties refer to the same underlying field.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.ForEachTarget(UnityEditor.SerializedProperty,System.Action{UnityEditor.SerializedProperty},System.String)">
            <summary>
            Executes the `action` once with a new <see cref="T:UnityEditor.SerializedProperty"/> for each of the
            <see cref="P:UnityEditor.SerializedObject.targetObjects"/>. Or if there is only one target, it uses the `property`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.AddFunction(UnityEditor.GenericMenu,System.String,Animancer.Editor.MenuFunctionState,UnityEditor.GenericMenu.MenuFunction)">
            <summary>
            Adds a menu item to execute the specified `function` for each of the `property`s target objects.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.AddFunction(UnityEditor.GenericMenu,System.String,System.Boolean,UnityEditor.GenericMenu.MenuFunction)">
            <summary>
            Adds a menu item to execute the specified `function` for each of the `property`s target objects.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.AddPropertyModifierFunction(UnityEditor.GenericMenu,UnityEditor.SerializedProperty,System.String,Animancer.Editor.MenuFunctionState,System.Action{UnityEditor.SerializedProperty})">
            <summary>Adds a menu item to execute the specified `function` for each of the `property`s target objects.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.AddPropertyModifierFunction(UnityEditor.GenericMenu,UnityEditor.SerializedProperty,System.String,System.Boolean,System.Action{UnityEditor.SerializedProperty})">
            <summary>Adds a menu item to execute the specified `function` for each of the `property`s target objects.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.AddPropertyModifierFunction(UnityEditor.GenericMenu,UnityEditor.SerializedProperty,System.String,System.Action{UnityEditor.SerializedProperty})">
            <summary>Adds a menu item to execute the specified `function` for each of the `property`s target objects.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.ModifyValues``1(UnityEditor.SerializedProperty,System.Action{``0},System.String)">
            <summary>
            Calls the specified `method` for each of the underlying values of the `property` (in case it represents
            multiple selected objects) and records an undo step for any modifications made.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.RecordUndo(UnityEditor.SerializedProperty,System.String)">
            <summary>
            Records the state of the specified `property` so it can be undone.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.OnPropertyChanged(UnityEditor.SerializedProperty)">
            <summary>
            Updates the specified `property` and marks its target objects as dirty so any changes to a prefab will be saved.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.GetPropertyType(System.Type)">
            <summary>
            Returns the <see cref="T:UnityEditor.SerializedPropertyType"/> that represents fields of the specified `type`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.RemoveArrayElement(UnityEditor.SerializedProperty,System.Int32)">
            <summary>Removes the specified array element from the `property`.</summary>
            <remarks>
            If the element is not at its default value, the first call to
            <see cref="M:UnityEditor.SerializedProperty.DeleteArrayElementAtIndex(System.Int32)"/> will only reset it, so this method will
            call it again if necessary to ensure that it actually gets removed.
            </remarks>
        </member>
        <member name="M:Animancer.Editor.Serialization.GetAccessor(UnityEditor.SerializedProperty)">
            <summary>
            Returns a <see cref="T:Animancer.Editor.Serialization.PropertyAccessor"/> that can be used to access the details of the specified `property`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.GetAccessor(UnityEditor.SerializedProperty,System.String,System.Type@)">
            <summary>
            Returns a <see cref="T:Animancer.Editor.Serialization.PropertyAccessor"/> for a <see cref="T:UnityEditor.SerializedProperty"/> with the specified `propertyPath`
            on the specified `type` of object.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.GetField(Animancer.Editor.Serialization.PropertyAccessor,UnityEditor.SerializedProperty,System.Type,System.String)">
            <summary>Returns a field with the specified `name` in the `declaringType` or any of its base types.</summary>
            <remarks>Uses the <see cref="F:Animancer.Editor.Serialization.InstanceBindings"/>.</remarks>
        </member>
        <member name="M:Animancer.Editor.Serialization.GetField(System.Type,System.String)">
            <summary>Returns a field with the specified `name` in the `declaringType` or any of its base types.</summary>
            <remarks>Uses the <see cref="F:Animancer.Editor.Serialization.InstanceBindings"/>.</remarks>
        </member>
        <member name="T:Animancer.Editor.Serialization.PropertyAccessor">
            <summary>[Editor-Only]
            A wrapper for accessing the underlying values and fields of a <see cref="T:UnityEditor.SerializedProperty"/>.
            </summary>
        </member>
        <member name="F:Animancer.Editor.Serialization.PropertyAccessor.Parent">
            <summary>The accessor for the field which this accessor is nested inside.</summary>
        </member>
        <member name="F:Animancer.Editor.Serialization.PropertyAccessor.Name">
            <summary>The name of the field wrapped by this accessor.</summary>
        </member>
        <member name="F:Animancer.Editor.Serialization.PropertyAccessor.Field">
            <summary>The field wrapped by this accessor.</summary>
        </member>
        <member name="F:Animancer.Editor.Serialization.PropertyAccessor.FieldElementType">
            <summary>
            The type of the wrapped <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Field"/>.
            Or if it's a collection, this is the type of items in the collection.
            </summary>
        </member>
        <member name="F:Animancer.Editor.Serialization.PropertyAccessor.IsDynamic">
            <summary>
            Does the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Field"/> in this accessor or any <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Parent"/> have a
            <see cref="T:UnityEngine.SerializeReference"/> attribute?
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.#ctor(Animancer.Editor.Serialization.PropertyAccessor,System.String,System.Reflection.FieldInfo)">
            <summary>[Internal] Creates a new <see cref="T:Animancer.Editor.Serialization.PropertyAccessor"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.#ctor(Animancer.Editor.Serialization.PropertyAccessor,System.String,System.Reflection.FieldInfo,System.Type)">
            <summary>Creates a new <see cref="T:Animancer.Editor.Serialization.PropertyAccessor"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.GetField(System.Object@)">
            <summary>Returns the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Field"/> if there is one or tries to get it from the object's type.</summary>
            
            <remarks>
            If this accessor has a <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Parent"/>, the `obj` must be associated with the root
            <see cref="T:UnityEditor.SerializedProperty"/> and this method will change it to reference the parent field's value.
            </remarks>
            
            <example><code>
            [Serializable]
            public class InnerClass
            {
                public float value;
            }
            
            [Serializable]
            public class RootClass
            {
                public InnerClass inner;
            }
            
            public class MyBehaviour : MonoBehaviour
            {
                public RootClass root;
            }
            
            [UnityEditor.CustomEditor(typeof(MyBehaviour))]
            public class MyEditor : UnityEditor.Editor
            {
                private void OnEnable()
                {
                    var serializedObject = new SerializedObject(target);
                    var rootProperty = serializedObject.FindProperty("root");
                    var innerProperty = rootProperty.FindPropertyRelative("inner");
                    var valueProperty = innerProperty.FindPropertyRelative("value");
            
                    var accessor = valueProperty.GetAccessor();
            
                    object obj = target;
                    var valueField = accessor.GetField(ref obj);
                    // valueField is a FieldInfo referring to InnerClass.value.
                    // obj now holds the ((MyBehaviour)target).root.inner.
                }
            }
            </code></example>
            
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.GetField(System.Object)">
            <summary>
            Returns the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Field"/> if there is one, otherwise calls <see cref="M:Animancer.Editor.Serialization.PropertyAccessor.GetField(System.Object@)"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.GetField(UnityEditor.SerializedObject)">
            <summary>
            Calls <see cref="M:Animancer.Editor.Serialization.PropertyAccessor.GetField(System.Object)"/> with the <see cref="P:UnityEditor.SerializedObject.targetObject"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.GetField(UnityEditor.SerializedProperty)">
            <summary>
            Calls <see cref="M:Animancer.Editor.Serialization.PropertyAccessor.GetField(UnityEditor.SerializedObject)"/> with the
            <see cref="P:UnityEditor.SerializedProperty.serializedObject"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.GetFieldElementType(System.Object)">
            <summary>
            Returns the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.FieldElementType"/> if there is one, otherwise calls <see cref="M:Animancer.Editor.Serialization.PropertyAccessor.GetField(System.Object@)"/>
            and returns its <see cref="P:System.Reflection.FieldInfo.FieldType"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.GetFieldElementType(UnityEditor.SerializedObject)">
            <summary>
            Calls <see cref="M:Animancer.Editor.Serialization.PropertyAccessor.GetFieldElementType(System.Object)"/> with the
            <see cref="P:UnityEditor.SerializedObject.targetObject"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.GetFieldElementType(UnityEditor.SerializedProperty)">
            <summary>
            Calls <see cref="M:Animancer.Editor.Serialization.PropertyAccessor.GetFieldElementType(UnityEditor.SerializedObject)"/> with the
            <see cref="P:UnityEditor.SerializedProperty.serializedObject"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.GetValue(System.Object)">
            <summary>
            Gets the value of the from the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Parent"/> (if there is one), then uses it to get and return
            the value of the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Field"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.GetValue(UnityEditor.SerializedObject)">
            <summary>
            Gets the value of the from the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Parent"/> (if there is one), then uses it to get and return
            the value of the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Field"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.GetValue(UnityEditor.SerializedProperty)">
            <summary>
            Gets the value of the from the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Parent"/> (if there is one), then uses it to get and return
            the value of the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Field"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.SetValue(System.Object,System.Object)">
            <summary>
            Gets the value of the from the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Parent"/> (if there is one), then uses it to set the value
            of the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Field"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.SetValue(UnityEditor.SerializedObject,System.Object)">
            <summary>
            Gets the value of the from the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Parent"/> (if there is one), then uses it to set the value
            of the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Field"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.SetValue(UnityEditor.SerializedProperty,System.Object)">
            <summary>
            Gets the value of the from the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Parent"/> (if there is one), then uses it to set the value
            of the <see cref="F:Animancer.Editor.Serialization.PropertyAccessor.Field"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.ResetValue(UnityEditor.SerializedProperty,System.String)">
            <summary>
            Resets the value of the <see cref="T:UnityEditor.SerializedProperty"/> to the default value of its type by executing
            its constructor and field initializers.
            </summary>
            <remarks>
            If you don't want to run constructors and field initializers, you can call
            <see cref="M:Animancer.Editor.Serialization.ResetValue(UnityEditor.SerializedProperty)"/> instead.
            </remarks>
            <example><code>
            SerializedProperty property;
            property.GetAccessor().ResetValue(property);
            </code></example>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.ToString">
            <summary>Returns a description of this accessor's path.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyAccessor.GetPath">
            <summary>Returns this accessor's <see cref="P:UnityEditor.SerializedProperty.propertyPath"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.Serialization.CollectionPropertyAccessor">
            <summary>[Editor-Only] A <see cref="T:Animancer.Editor.Serialization.PropertyAccessor"/> for a specific element index in a collection.</summary>
        </member>
        <member name="F:Animancer.Editor.Serialization.CollectionPropertyAccessor.ElementIndex">
            <summary>The index of the array element this accessor targets.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.CollectionPropertyAccessor.#ctor(Animancer.Editor.Serialization.PropertyAccessor,System.String,System.Reflection.FieldInfo,System.Int32)">
            <summary>[Internal] Creates a new <see cref="T:Animancer.Editor.Serialization.CollectionPropertyAccessor"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.CollectionPropertyAccessor.GetFieldElementType(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Serialization.CollectionPropertyAccessor.GetElementType(System.Type)">
            <summary>Returns the type of elements in the array.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.CollectionPropertyAccessor.GetCollection(System.Object)">
            <summary>Returns the collection object targeted by this accessor.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.CollectionPropertyAccessor.GetValue(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Serialization.CollectionPropertyAccessor.SetCollection(System.Object,System.Object)">
            <summary>Sets the collection object targeted by this accessor.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.CollectionPropertyAccessor.SetValue(System.Object,System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.Serialization.CollectionPropertyAccessor.ToString">
            <summary>Returns a description of this accessor's path.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.CollectionPropertyAccessor.GetCollectionPath">
            <summary>Returns the <see cref="P:UnityEditor.SerializedProperty.propertyPath"/> of the array containing the target.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.CollectionPropertyAccessor.GetPath">
            <summary>Returns this accessor's <see cref="P:UnityEditor.SerializedProperty.propertyPath"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.Serialization.ObjectReference">
            <summary>[Editor-Only]
            Directly serializing an <see cref="T:UnityEngine.Object"/> reference doesn't always work (such as with scene
            objects when entering Play Mode), so this class also serializes their instance ID and uses that if the
            direct reference fails.
            </summary>
        </member>
        <member name="P:Animancer.Editor.Serialization.ObjectReference.Object">
            <summary>The referenced <see cref="T:UnityEditor.SerializedObject"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Serialization.ObjectReference.InstanceID">
            <summary>The <see cref="M:UnityEngine.Object.GetInstanceID"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.ObjectReference.#ctor(UnityEngine.Object)">
            <summary>
            Creates a new <see cref="T:Animancer.Editor.Serialization.ObjectReference"/> which wraps the specified
            <see cref="T:UnityEngine.Object"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.ObjectReference.op_Implicit(UnityEngine.Object)~Animancer.Editor.Serialization.ObjectReference">
            <summary>
            Creates a new <see cref="T:Animancer.Editor.Serialization.ObjectReference"/> which wraps the specified
            <see cref="T:UnityEngine.Object"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.ObjectReference.op_Implicit(Animancer.Editor.Serialization.ObjectReference)~UnityEngine.Object">
            <summary>Returns the target <see cref="P:Animancer.Editor.Serialization.ObjectReference.Object"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.ObjectReference.Convert(UnityEngine.Object[])">
            <summary>Creates a new array of <see cref="T:Animancer.Editor.Serialization.ObjectReference"/>s representing the `objects`.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.ObjectReference.Convert(Animancer.Editor.Serialization.ObjectReference[])">
            <summary>
            Creates a new array of <see cref="T:UnityEngine.Object"/>s containing the target <see cref="P:Animancer.Editor.Serialization.ObjectReference.Object"/> of each
            of the `references`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.ObjectReference.AreSameObjects(Animancer.Editor.Serialization.ObjectReference[],UnityEngine.Object[])">
            <summary>Indicates whether both arrays refer to the same set of objects.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.ObjectReference.ToString">
            <summary>Returns a string describing this object.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.IsValid(Animancer.Editor.Serialization.ObjectReference)">
            <summary>Returns true if the `reference` and <see cref="P:Animancer.Editor.Serialization.ObjectReference.Object"/> are not null.</summary>
        </member>
        <member name="T:Animancer.Editor.Serialization.PropertyReference">
            <summary>[Editor-Only] A serializable reference to a <see cref="T:UnityEditor.SerializedProperty"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Serialization.PropertyReference.TargetObject">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The <see cref="P:UnityEditor.SerializedObject.targetObject"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Serialization.PropertyReference.TargetObjects">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The <see cref="P:UnityEditor.SerializedObject.targetObjects"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Serialization.PropertyReference.Context">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The <see cref="P:UnityEditor.SerializedObject.context"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Serialization.PropertyReference.PropertyPath">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The <see cref="P:UnityEditor.SerializedProperty.propertyPath"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.Serialization.PropertyReference.IsInitialized">
            <summary>Indicates whether the <see cref="P:Animancer.Editor.Serialization.PropertyReference.Property"/> has been accessed.</summary>
        </member>
        <member name="P:Animancer.Editor.Serialization.PropertyReference.Property">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The referenced <see cref="T:UnityEditor.SerializedProperty"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyReference.#ctor(UnityEditor.SerializedProperty)">
            <summary>
            Creates a new <see cref="T:Animancer.Editor.Serialization.PropertyReference"/> which wraps the specified `property`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyReference.op_Implicit(UnityEditor.SerializedProperty)~Animancer.Editor.Serialization.PropertyReference">
            <summary>
            Creates a new <see cref="T:Animancer.Editor.Serialization.PropertyReference"/> which wraps the specified `property`.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyReference.op_Implicit(Animancer.Editor.Serialization.PropertyReference)~UnityEditor.SerializedProperty">
            <summary>
            Returns the target <see cref="P:Animancer.Editor.Serialization.PropertyReference.Property"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyReference.IsTarget(UnityEditor.SerializedProperty,UnityEngine.Object[])">
            <summary>Do the specified `property` and `targetObjects` match the targets of this reference?</summary>
        </member>
        <member name="P:Animancer.Editor.Serialization.PropertyReference.TargetsExist">
            <summary>Is there is at least one target and none of them are <c>null</c>?</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyReference.Update">
            <summary>
            Calls <see cref="M:UnityEditor.SerializedObject.Update"/> if the <see cref="P:Animancer.Editor.Serialization.PropertyReference.Property"/> has been initialized.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyReference.ApplyModifiedProperties">
            <summary>
            Calls <see cref="M:UnityEditor.SerializedObject.ApplyModifiedProperties"/> if the <see cref="P:Animancer.Editor.Serialization.PropertyReference.Property"/> has been initialized.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyReference.Dispose">
            <summary>
            Calls <see cref="M:UnityEditor.SerializedObject.Dispose"/> if the <see cref="P:Animancer.Editor.Serialization.PropertyReference.Property"/> has been initialized.
            </summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyReference.GetPropertyHeight">
            <summary>Gets the height needed to draw the target property.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyReference.DoTargetGUI(UnityEngine.Rect)">
            <summary>Draws the target object within the specified `area`.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.PropertyReference.DoPropertyGUI(UnityEngine.Rect)">
            <summary>Draws the target property within the specified `area`.</summary>
        </member>
        <member name="M:Animancer.Editor.Serialization.IsValid(Animancer.Editor.Serialization.PropertyReference)">
            <summary>Returns true if the `reference` and <see cref="P:Animancer.Editor.Serialization.PropertyReference.Property"/> are not null.</summary>
        </member>
        <member name="T:Animancer.Editor.SerializedArrayProperty">
            <summary>[Editor-Only] A wrapper around a <see cref="T:UnityEditor.SerializedProperty"/> representing an array field.</summary>
        </member>
        <member name="P:Animancer.Editor.SerializedArrayProperty.Property">
            <summary>The target property.</summary>
        </member>
        <member name="P:Animancer.Editor.SerializedArrayProperty.Path">
            <summary>The cached <see cref="P:UnityEditor.SerializedProperty.propertyPath"/> of the <see cref="P:Animancer.Editor.SerializedArrayProperty.Property"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.SerializedArrayProperty.Count">
            <summary>The cached <see cref="P:UnityEditor.SerializedProperty.arraySize"/> of the <see cref="P:Animancer.Editor.SerializedArrayProperty.Property"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.SerializedArrayProperty.HasMultipleDifferentValues">
            <summary>The cached <see cref="P:UnityEditor.SerializedProperty.hasMultipleDifferentValues"/> of the <see cref="P:Animancer.Editor.SerializedArrayProperty.Property"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedArrayProperty.Refresh">
            <summary>Updates the cached <see cref="P:Animancer.Editor.SerializedArrayProperty.Count"/> and <see cref="P:Animancer.Editor.SerializedArrayProperty.HasMultipleDifferentValues"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedArrayProperty.GetElement(System.Int32)">
            <summary>Calls <see cref="M:UnityEditor.SerializedProperty.GetArrayElementAtIndex(System.Int32)"/> on the <see cref="P:Animancer.Editor.SerializedArrayProperty.Property"/>.</summary>
            <remarks>
            Returns <c>null</c> if the element is not actually a child of the <see cref="P:Animancer.Editor.SerializedArrayProperty.Property"/>, which can happen
            if multiple objects are selected with different array sizes.
            </remarks>
        </member>
        <member name="T:Animancer.Editor.SerializedComponentDataEditorWindow`2">
            <summary>[Editor-Only]
            A <see cref="T:Animancer.Editor.SerializedDataEditorWindow`2"/> for <see cref="T:UnityEngine.Component"/>s.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/SerializedComponentDataEditorWindow_2
        </member>
        <member name="P:Animancer.Editor.SerializedComponentDataEditorWindow`2.SourceObject">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.SerializedComponentDataEditorWindow`2.SourceObjectMightBePrefab">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.SerializedComponentDataEditorWindow`2.CaptureData">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.SerializedDataEditorWindow`2">
            <summary>[Editor-Only]
            A window for managing a copy of some serialized data and applying or reverting it.
            </summary>
            <remarks>
            This system assumes the implementation of <see cref="T:System.IEquatable`1"/>
            compares the values of all fields in <typeparamref name="TData"/>.
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/SerializedDataEditorWindow_2
        </member>
        <member name="P:Animancer.Editor.SerializedDataEditorWindow`2.SourceObject">
            <summary>The object which contains the data this class manages.</summary>
            <remarks><see cref="M:Animancer.Editor.SerializedDataEditorWindow`2.SetAndCaptureSource(`0)"/> should generally be used instead of setting this property directly.</remarks>
        </member>
        <member name="P:Animancer.Editor.SerializedDataEditorWindow`2.SourceData">
            <summary>The <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.Data"/> field of the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.SourceObject"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.SerializedDataEditorWindow`2.Data">
            <summary>A copy of the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.SourceData"/> being managed by this window.</summary>
        </member>
        <member name="P:Animancer.Editor.SerializedDataEditorWindow`2.HasDataChanged">
            <summary>Is the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.Data"/> managed by this window different to the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.SourceData"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.OnEnable">
            <summary>Initializes this window.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.OnDisable">
            <summary>Cleans up this window.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.OnDestroy">
            <summary>
            Prompts the user to <see cref="M:Animancer.Editor.SerializedDataEditorWindow`2.Apply"/> or <see cref="M:Animancer.Editor.SerializedDataEditorWindow`2.Revert"/>
            if there are changes in the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.Data"/> when this window is closed.
            </summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.OnTryCloseEditor">
            <summary>Called before closing the Unity Editor to confirm that un-saved data is applied.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.SetAndCaptureSource(`0)">
            <summary>
            Sets the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.SourceObject"/> and captures the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.Data"/>
            as a copy of its <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.SourceData"/>.
            </summary>
        </member>
        <member name="P:Animancer.Editor.SerializedDataEditorWindow`2.SourceObjectMightBePrefab">
            <summary>
            Override this to return <c>true</c> if the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.SourceObject"/> could be part of a prefab
            to ensure that modifications are serialized properly.
            </summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.Apply">
            <summary>Saves the edited <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.Data"/> into the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.SourceObject"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.GatherObjectReferences(UnityEngine.Object,System.Collections.Generic.HashSet{UnityEngine.Object})">
            <summary>Gathers all objects referenced by the `root`.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.Revert">
            <summary>Restores the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.Data"/> to the original values from the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.SourceData"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.CaptureData">
            <summary>Stores a copy of the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.SourceData"/> in the <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.Data"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.RecordUndo">
            <summary>Records the current state of this window so it can be undone later.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.RecordUndo(System.String)">
            <summary>Records the current state of this window so it can be undone later.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.Open``1(`0,System.Boolean,System.Type[])">
            <summary>
            Opens a new <typeparamref name="TWindow"/> for the `sourceObject`
            or gives focus to an existing window that was already displaying it.
            </summary>
        </member>
        <member name="P:Animancer.Editor.SerializedDataEditorWindow`2.AutoApplyPref">
            <summary>The <see cref="T:UnityEditor.EditorPrefs"/> key for <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.AutoApply"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.SerializedDataEditorWindow`2.AutoApply">
            <summary>Is the "Auto Apply" toggle currently enabled?</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.OnPlayModeStateChanged(UnityEditor.PlayModeStateChange)">
            <summary>Handles entering and exiting Play Mode.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.CalculateApplyRevertWidth(Animancer.Editor.ButtonGroupStyles)">
            <summary>
            Calculates the pixel width required for
            <see cref="M:Animancer.Editor.SerializedDataEditorWindow`2.DoApplyRevertGUI(UnityEngine.Rect,UnityEngine.Rect,UnityEngine.Rect,Animancer.Editor.ButtonGroupStyles)"/>.
            </summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.DoApplyRevertGUI(Animancer.Editor.ButtonGroupStyles)">
            <summary>Draws GUI controls for <see cref="M:Animancer.Editor.SerializedDataEditorWindow`2.Revert"/>, <see cref="M:Animancer.Editor.SerializedDataEditorWindow`2.Apply"/>, and <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.AutoApply"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.DoApplyRevertGUI(UnityEngine.Rect,Animancer.Editor.ButtonGroupStyles)">
            <summary>Draws GUI controls for <see cref="M:Animancer.Editor.SerializedDataEditorWindow`2.Revert"/>, <see cref="M:Animancer.Editor.SerializedDataEditorWindow`2.Apply"/>, and <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.AutoApply"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SerializedDataEditorWindow`2.DoApplyRevertGUI(UnityEngine.Rect,UnityEngine.Rect,UnityEngine.Rect,Animancer.Editor.ButtonGroupStyles)">
            <summary>Draws GUI controls for <see cref="M:Animancer.Editor.SerializedDataEditorWindow`2.Revert"/>, <see cref="M:Animancer.Editor.SerializedDataEditorWindow`2.Apply"/>, and <see cref="P:Animancer.Editor.SerializedDataEditorWindow`2.AutoApply"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.SharedReferenceCache">
            <summary>[Editor-Only]
            A system which gathers information about <see cref="T:UnityEngine.SerializeReference"/> fields to detect when multiple fields
            are referencing the same object.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/SharedReferenceCache
        </member>
        <member name="M:Animancer.Editor.SharedReferenceCache.Get(UnityEditor.SerializedObject)">
            <summary>Returns a cached <see cref="T:Animancer.Editor.SharedReferenceCache"/> for the `serializedObject`.</summary>
        </member>
        <member name="M:Animancer.Editor.SharedReferenceCache.CheckFlush(UnityEditor.SerializedObject)">
            <summary>Discards any caches not used during the last <see cref="F:Animancer.Editor.SharedReferenceCache.FlushInterval"/> when it elapses.</summary>
        </member>
        <member name="P:Animancer.Editor.SharedReferenceCache.FrameCount">
            <summary>The number of editor updates that have occurred since startup.</summary>
        </member>
        <member name="T:Animancer.Editor.SharedReferenceCache.Field">
            <summary>Information about a field.</summary>
        </member>
        <member name="F:Animancer.Editor.SharedReferenceCache.Field.path">
            <summary>The <see cref="M:Animancer.Editor.Serialization.GetFriendlyPath(UnityEditor.SerializedProperty)"/> of the field.</summary>
        </member>
        <member name="F:Animancer.Editor.SharedReferenceCache.Field.area">
            <summary>The area where the field was last drawn.</summary>
        </member>
        <member name="M:Animancer.Editor.SharedReferenceCache.Field.#ctor(System.String)">
            <summary>Creates a new <see cref="T:Animancer.Editor.SharedReferenceCache.Field"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.SharedReferenceCache.#ctor(UnityEditor.SerializedObject)">
            <summary>Creates a new <see cref="T:Animancer.Editor.SharedReferenceCache"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.SharedReferenceCache.ShouldGather">
            <summary>Should <see cref="M:Animancer.Editor.SharedReferenceCache.GatherReferences"/> be called?</summary>
        </member>
        <member name="M:Animancer.Editor.SharedReferenceCache.GatherReferences">
            <summary>Updates the cached reference info.</summary>
        </member>
        <member name="M:Animancer.Editor.SharedReferenceCache.TryGetInfo(System.Object,System.Collections.Generic.List{Animancer.Editor.SharedReferenceCache.Field}@)">
            <summary>Tries to get the info about all fields containing the `reference`.</summary>
        </member>
        <member name="M:Animancer.Editor.SharedReferenceCache.GetEnumerator">
            <summary>Returns an enumerator for all references and their info.</summary>
        </member>
        <member name="M:Animancer.Editor.SharedReferenceCache.System#Collections#Generic#IEnumerable{System#Collections#Generic#KeyValuePair{System#Object,System#Collections#Generic#List{Animancer#Editor#SharedReferenceCache#Field}}}#GetEnumerator">
            <summary>Returns an enumerator for all references and their info.</summary>
        </member>
        <member name="M:Animancer.Editor.SharedReferenceCache.System#Collections#IEnumerable#GetEnumerator">
            <summary>Returns an enumerator for all references and their info.</summary>
        </member>
        <member name="T:Animancer.Editor.TemporarySettings">
            <summary>[Editor-Only]
            Stores data which needs to survive assembly reloading (such as from script compilation), but can be discarded
            when the Unity Editor is closed.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor/TemporarySettings
        </member>
        <member name="P:Animancer.Editor.TemporarySettings.Instance">
            <summary>Finds an existing instance of this class or creates a new one.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibraryAliasesPage">
            <summary>[Editor-Only]
            A <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowPage"/> for editing transition aliases.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryAliasesPage
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryAliasesPage.DisplayName">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryAliasesPage.HelpTooltip">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryAliasesPage.Index">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryAliasesPage.OnGUI(UnityEngine.Rect)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryAliasesPage.DoAliasAllGUI(UnityEngine.Rect)">
            <summary>Draws <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.AliasAllTransitions"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryAliasesPage.DoTransitionGUI(UnityEngine.Rect,Animancer.TransitionAssetBase,System.Int32)">
            <summary>Draws a `transition`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryAliasesPage.CalculateTargetTransitionIndex(UnityEngine.Rect,System.Int32,UnityEngine.Event)">
            <summary>Calculates the transition index for a drag and drop operation.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryAliasesPage.DoAliasGUI(UnityEngine.Rect,Animancer.TransitionLibraries.NamedIndex,System.Int32)">
            <summary>Draws an `alias`.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibraryModifiersPage">
            <summary>[Editor-Only]
            A <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowPage"/> for editing transition modifiers.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryModifiersPage
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryModifiersPage.DisplayName">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryModifiersPage.HelpTooltip">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryModifiersPage.Index">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryModifiersPage.OnGUI(UnityEngine.Rect)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowPage">
            <summary>[Editor-Only]
            Manages the selection of pages in the <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryWindowPage
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowPage.Window">
            <summary>The window containing this page.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowPage.DisplayName">
            <summary>The name of this page.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowPage.HelpTooltip">
            <summary>The text to use for the tooltip on the help button while this page is visible.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowPage.Index">
            <summary>The sorting index of this page.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowPage.CompareTo(Animancer.Editor.TransitionLibraries.TransitionLibraryWindowPage)">
            <summary>Compares the <see cref="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowPage.Index"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowPage.OnGUI(UnityEngine.Rect)">
            <summary>Draws the GUI of this page.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI">
            <summary>[Editor-Only]
            A <see cref="T:Animancer.Editor.TableGUI"/> for editing
            <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Modifiers"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionModifierTableGUI
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.DoGUI(UnityEngine.Rect,Animancer.Editor.TransitionLibraries.TransitionLibraryWindow)">
            <summary>Draws the table GUI.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.RecalculateSelectedCell(Animancer.Editor.TransitionLibraries.TransitionLibrarySelection)">
            <summary>Calculates the table coordinates of the `selection`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.DoCellGUI(UnityEngine.Rect,System.Int32,System.Int32)">
            <summary>Draws a table cell.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.DoCornerGUI(UnityEngine.Rect)">
            <summary>Draws the header corner.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.DoCreateButtonGUI(UnityEngine.Rect)">
            <summary>Draws a button to create a new transition.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.DoDeleteButtonGUI(UnityEngine.Rect)">
            <summary>Draws a button to remove the selected transition.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.DoLabelGUI(UnityEngine.Rect,System.Int32,UnityEngine.GUIStyle,Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.SelectionType)">
            <summary>Draws a row or column label.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.HandleTransitionLabelInput(UnityEngine.Rect@,Animancer.Editor.TransitionLibraries.TransitionLibraryWindow,Animancer.TransitionAssetBase,System.Int32,Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.SelectionType,System.Func{UnityEngine.Rect,System.Int32,UnityEngine.Event,System.Int32})">
            <summary>Handles input events on transition labels.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.CalculateTargetTransitionIndex(UnityEngine.Rect,System.Int32,UnityEngine.Event)">
            <summary>Calculates the transition index for a drag and drop operation.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.DoFadeDurationGUI(UnityEngine.Rect,Animancer.Editor.TransitionLibraries.TransitionLibraryWindow,System.Int32,System.Int32,System.String)">
            <summary>Draws the fade duration for a particular transition combination.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.DrawHighlightGUI(UnityEngine.Rect,System.Int32,System.Int32,System.Boolean)">
            <summary>Draws the selection and hover highlights for a particular cell.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.IsInlineWithX(UnityEngine.Rect,System.Single)">
            <summary>Is `x` inside the `area`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.IsInlineWithY(UnityEngine.Rect,System.Single)">
            <summary>Is `y` inside the `area`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionModifierTableGUI.CalculateWidestTransitionLabel">
            <summary>Calculates the largest width of all transition labels.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection">
            <summary>[Editor-Only]
            A dummy object for tracking the selection within the <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow"/>
            and showing its details in the Inspector.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibrarySelection
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.SelectionType">
            <summary>[Editor-Only] Types of objects can be selected.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.SelectionType.None">
            <summary>Nothing selected.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.SelectionType.Library">
            <summary>The main library.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.SelectionType.FromTransition">
            <summary>A from-transition.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.SelectionType.ToTransition">
            <summary>A to-transition.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.SelectionType.Modifier">
            <summary>A fade duration modifier.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.Window">
            <summary>The window this selection is associated with.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.Type">
            <summary>The type of selected object.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.FromIndex">
            <summary>The index of the <see cref="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.FromTransition"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.ToIndex">
            <summary>The index of the <see cref="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.ToTransition"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.Version">
            <summary>The number of times this selection has been changed.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.FromTransition">
            <summary>The transition the current selection is coming from.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.ToTransition">
            <summary>The transition the current selection is going to.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.FadeDuration">
            <summary>The <see cref="P:Animancer.ITransition.FadeDuration"/> of the current selection.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.HasModifier">
            <summary>Does the current selection have a modified <see cref="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.FadeDuration"/>?</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.Selected">
            <summary>The currently selected object.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.Validate">
            <summary>Deselects the current object if it isn't valid.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.IsValid">
            <summary>Is the current selection valid?</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.Select(Animancer.Editor.TransitionLibraries.TransitionLibraryWindow,System.Object,Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.SelectionType)">
            <summary>Sets the <see cref="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.Selected"/> object.</summary>
            <remarks>
            We can't simply set the <see cref="P:UnityEditor.Selection.activeObject"/>
            because it might not be a <see cref="T:UnityEngine.Object"/>
            and if it is then we don't want the Project window to move to it.
            <para></para>
            So instead, we select this dummy object and <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionEditor"/>
            draws a custom Inspector for the target object.
            </remarks>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.Deselect">
            <summary>Clears the <see cref="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.Selected"/> object.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.OnSelectionChange">
            <summary>Handles selection changes.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection.OnEnable">
            <summary>Selects this object if it contains a valid selection.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionEditor">
            <summary>[Editor-Only]
            A custom Inspector for <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibrarySelectionEditor
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionEditor.Target">
            <summary>Casts the <see cref="P:UnityEditor.Editor.target"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionEditor.OnInspectorGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionEditor.DoNestedEditorGUI``1(``0,System.String)">
            <summary>Draws the <see cref="T:UnityEditor.Editor"/> for the `target`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionEditor.OnDestroy">
            <summary>Cleans up any nested editors.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionEditor.DoTransitionGUI(Animancer.TransitionAssetBase)">
            <summary>Draws the GUI for the `transition`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionEditor.DoTransitionNameGUI(Animancer.TransitionAssetBase)">
            <summary>Draws a field for editing the name of the `transition`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionEditor.DoModifierGUI(Animancer.Editor.TransitionLibraries.TransitionLibrarySelection,Animancer.TransitionLibraries.TransitionModifierDefinition)">
            <summary>Draws the GUI for the `modifier`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionEditor.DoTransitionField(Animancer.TransitionLibraries.TransitionLibraryDefinition,Animancer.Editor.CachedEditor,Animancer.Editor.BoolPref,System.Int32,System.String)">
            <summary>Draws the GUI for a transition.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview">
            <summary>[Editor-Only] Custom preview for <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySelection"/>.</summary>
            <remarks>Parts of this class are based on Unity's <see cref="T:UnityEditor.MeshPreview"/>.</remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibrarySelectionPreview
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.Initialize(UnityEngine.Object[])">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.Cleanup">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.CheckTarget">
            <summary>Handles changes to the target object.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.UpdatePlayerSettings">
            <summary>Updates the settings of the <see cref="T:Animancer.Editor.Previews.TransitionPreviewPlayer"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.GetPreviewTitle">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.HasPreviewGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.OnPreviewSettings">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.DoPlayPauseToggle(UnityEngine.Rect,UnityEngine.GUIStyle)">
            <summary>Draws a toggle to play and pause the preview.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.OnInteractivePreviewGUI(UnityEngine.Rect,UnityEngine.GUIStyle)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.DoSettingsGUI(UnityEngine.Rect@)">
            <summary>Draws settings for modifying the preview.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.DoTimelineGUI(UnityEngine.Rect@)">
            <summary>Draws the preview timeline.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.DoFadeDurationSliderGUI(UnityEngine.Rect)">
            <summary>Draws the fade duration slider.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.DoTimeSliderGUI(UnityEngine.Rect)">
            <summary>Draws the preview time slider.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.HandleDragTime(UnityEngine.Rect,UnityEngine.Event)">
            <summary>Draws handles drag events to control the preview time.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.CalculateFadeBounds(UnityEngine.Rect,System.Single@,System.Single@)">
            <summary>Calculates the start and end pixels of the fade.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview.DoTransitionLabels(UnityEngine.Rect)">
            <summary>Draws labels for the selected transitions.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreviewSpeed">
            <summary>[Editor-Only]
            <see cref="T:Animancer.Editor.ToggledSpeedSlider"/> for <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreview"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibrarySelectionPreviewSpeed
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreviewSpeed.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreviewSpeed"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreviewSpeed.OnSetSpeed(System.Single)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySelectionPreviewSpeed.DoToggleGUI(UnityEngine.Rect,UnityEngine.GUIStyle)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibraryAssetEditor">
            <summary>[Editor-Only]
            A custom Inspector for <see cref="T:Animancer.TransitionLibraries.TransitionLibraryAssetInternal"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryAssetEditor
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryAssetEditor.HeaderStyle">
            <summary>Style for section headers.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryAssetEditor.OnEnable">
            <summary>Called when a <see cref="T:Animancer.TransitionLibraries.TransitionLibraryAssetInternal"/> is selected.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryAssetEditor.OnDestroy">
            <summary>Called when a <see cref="T:Animancer.TransitionLibraries.TransitionLibraryAssetInternal"/> is deselected.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryAssetEditor.OnInspectorGUI">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryAssetEditor.DoMainButtonsGUI(Animancer.TransitionLibraries.TransitionLibraryAssetInternal)">
            <summary>Draws several buttons with utility functions.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryAssetEditor.DoSettingsGUI(Animancer.TransitionLibraries.TransitionLibraryAssetInternal)">
            <summary>Draws the `library`'s main settings.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryAssetEditor.DoEditorDataGUI(Animancer.TransitionLibraries.TransitionLibraryAssetInternal)">
            <summary>Draws the `library`'s <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryAssetEditor.DoSubAssetWarningGUI(Animancer.TransitionLibraries.TransitionLibraryAssetInternal)">
            <summary>Draws warnings about any sub-assets which aren't actually referenced by the `library`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryAssetEditor.DoSubAssetWarningGUI(Animancer.TransitionLibraries.TransitionLibraryAssetInternal,System.String,UnityEngine.Object)">
            <summary>Draws a warning about the `subAsset` if it isn't actually referenced by the `library`.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData">
            <summary>[Editor-Only]
            Additional data for a <see cref="T:Animancer.TransitionLibraries.TransitionLibraryAssetInternal"/> which is excluded from Runtime Builds.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryEditorData
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryEditorData
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData.Library">
            <summary>The library this data is associated with.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData.OnEnable">
            <summary>Registers this data for the <see cref="P:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData.Library"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData.OnDisable">
            <summary>Un-registers this data for the <see cref="P:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData.Library"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData.TryGet(Animancer.TransitionLibraries.TransitionLibraryAssetInternal,Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData@)">
            <summary>Tries to get the `data` associated with the `library`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData.GetEditorData(Animancer.TransitionLibraries.TransitionLibraryAssetInternal)">
            <summary>
            Returns the <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData"/> sub-asset of the `library` if one exists.
            </summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData.GetOrCreateEditorData(Animancer.TransitionLibraries.TransitionLibraryAssetInternal)">
            <summary>
            Returns the <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData"/> sub-asset of the `library` if one exists.
            Otherwise, creates and saves a new one.
            </summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData.TransitionSortMode">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The algorithm to use for sorting transitions.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorDataExtensions">
            <summary>[Editor-Only] Extension methods for <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryEditorDataExtensions
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorDataExtensions.GetEditorData(Animancer.TransitionLibraries.TransitionLibraryAssetInternal)">
            <summary><see cref="M:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData.GetEditorData(Animancer.TransitionLibraries.TransitionLibraryAssetInternal)"/></summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorDataExtensions.GetOrCreateEditorData(Animancer.TransitionLibraries.TransitionLibraryAssetInternal)">
            <summary><see cref="M:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData.GetOrCreateEditorData(Animancer.TransitionLibraries.TransitionLibraryAssetInternal)"/></summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorDataEditor">
            <summary>[Editor-Only] Custom Inspector for <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryEditorDataEditor
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorDataEditor.OnInspectorGUI">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibraryOperations">
            <summary>[Editor-Only]
            Operations for modifying a <see cref="T:Animancer.TransitionLibraries.TransitionLibraryAssetInternal"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryOperations
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryOperations.HandleBackgroundInput(UnityEngine.Rect,Animancer.Editor.TransitionLibraries.TransitionLibraryWindow)">
            <summary>Handles input events for the background of the `window`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryOperations.HandleDragAndDrop(UnityEngine.Event,Animancer.Editor.TransitionLibraries.TransitionLibraryWindow)">
            <summary>Handles drag and drop events to add transitions to the `window`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryOperations.CreateTransition(Animancer.Editor.TransitionLibraries.TransitionLibraryWindow)">
            <summary>Creates a new transition as a sub-asset of the `window`'s library.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryOperations.HandleDelete(UnityEngine.Event,Animancer.Editor.TransitionLibraries.TransitionLibraryWindow)">
            <summary>Handles a delete event.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryOperations.AskHowToDeleteTransition(Animancer.TransitionAssetBase,System.Int32,Animancer.Editor.TransitionLibraries.TransitionLibraryWindow)">
            <summary>Asks if the user wants to delete a transition asset or just remove it from the library.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySort">
            <summary>[Editor-Only] Utility for sorting a <see cref="T:Animancer.TransitionLibraries.TransitionLibraryAssetInternal"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibrarySort
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.OnWillSaveAssets(System.String[])">
            <summary>Ensures that a <see cref="T:Animancer.TransitionLibraries.TransitionLibraryAssetInternal"/> is sorted before being saved.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.Sort(Animancer.TransitionLibraries.TransitionLibraryAssetInternal)">
            <summary>Applies the <see cref="P:Animancer.Editor.TransitionLibraries.TransitionLibraryEditorData.TransitionSortMode"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.CompareName">
            <summary>Compares the asset names then GUIDs.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.ComparePath">
            <summary>Compares the asset paths then GUIDs.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.CompareTypeThenName">
            <summary>Compares the transition types then asset names then GUIDs.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.CompareTypeThenPath">
            <summary>Compares the transition types then asset paths then GUIDs.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.CompareNulls(Animancer.TransitionAssetBase,Animancer.TransitionAssetBase)">
            <summary>Compares objects to put null or destroyed ones at the end.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.CompareGUIDs(Animancer.TransitionAssetBase,Animancer.TransitionAssetBase)">
            <summary>Compares the asset GUIDs.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.CompareCachedNames(Animancer.TransitionAssetBase,Animancer.TransitionAssetBase)">
            <summary>Compares the asset names.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.ComparePaths(Animancer.TransitionAssetBase,Animancer.TransitionAssetBase)">
            <summary>Compares the asset paths.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.CompareTypes(Animancer.TransitionAssetBase,Animancer.TransitionAssetBase)">
            <summary>Compares the transition types.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.Sort(Animancer.TransitionLibraries.TransitionLibraryDefinition,System.Comparison{Animancer.TransitionAssetBase})">
            <summary>Sorts the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Transitions"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.Sort(Animancer.TransitionLibraries.TransitionLibraryDefinition,System.Collections.Generic.IComparer{Animancer.TransitionAssetBase})">
            <summary>Sorts the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Transitions"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.SetTransitions(Animancer.TransitionLibraries.TransitionLibraryDefinition,Animancer.TransitionAssetBase[],System.Int32[],System.Int32)">
            <summary>
            Sets the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Transitions"/>
            using `oldIndexToNew` to remap any references to the old order.
            </summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.ConvertIndex(System.Int32,System.Int32[],System.Int32,System.Boolean@)">
            <summary>Converts an old index to a new one.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.GetTempSequentialIndices(System.Int32)">
            <summary>Returns a cached array containing sequential indices, i.e. <c>array[i] = i</c>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibrarySort.MoveTransition(Animancer.Editor.TransitionLibraries.TransitionLibraryWindow,System.Int32,System.Int32)">
            <summary>Changes the index of a transition.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow">
            <summary>[Editor-Only]
            An <see cref="T:UnityEditor.EditorWindow"/> for configuring <see cref="T:Animancer.TransitionLibraries.TransitionLibraryAssetInternal"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryWindow
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.Open(Animancer.TransitionLibraries.TransitionLibraryAssetInternal)">
            <summary>Opens a window for the `library`.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.OnOpenAsset(System.Int32,System.Int32)">
            <summary>
            Double clicking a <see cref="T:Animancer.TransitionLibraries.TransitionLibraryAssetInternal"/>
            opens it in the <see cref="T:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow"/>.
            </summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.Instance">
            <summary>The current window instance.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.IsShowing(UnityEngine.Object)">
            <summary>Is a window currently showing the `library`.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.SourceData">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.Selection">
            <summary>Manages the objects which can be selected within a library.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.CurrentPage">
            <summary>The currently selected page.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.Highlighter">
            <summary>Object highlight manager.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.OnSelectionChange">
            <summary>Called when an object is selected.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.OnEnable">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.OnDisable">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.OnDestroy">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.OnGUI">
            <summary>Draws the GUI of this window.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.CaptureData">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.Apply">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.DoHeaderGUI">
            <summary>Draws the header GUI.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.DoPageSelectionDropdown(UnityEngine.Rect)">
            <summary>Draws a dropdown button for selecting the <see cref="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.CurrentPage"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.DoAssetPathButton(UnityEngine.Rect,UnityEngine.Event)">
            <summary>Draws the asset path of the target library and selects it if clicked.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.DoLiteWarningGUI">
            <summary>Draws a warning that <see cref="N:Animancer.Editor.TransitionLibraries"/> are Pro-Only.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.DoBodyGUI">
            <summary>Draws the <see cref="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindow.CurrentPage"/>.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowHighlighter">
            <summary>[Editor-Only]
            An <see cref="T:UnityEditor.EditorWindow"/> for configuring <see cref="T:Animancer.TransitionLibraries.TransitionLibraryAssetInternal"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryWindowHighlighter
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowHighlighter.EventType">
            <summary>The current <see cref="P:UnityEngine.Event.type"/>.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowHighlighter.IsMouseOver">
            <summary>The the mouse currently over the highlighter area.</summary>
        </member>
        <member name="P:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowHighlighter.DidHoverHighlight">
            <summary>The the hover highlight currently visible.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowHighlighter.BeginGUI(UnityEngine.Rect)">
            <summary>Gathers the details of the <see cref="P:UnityEngine.Event.current"/>.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowHighlighter.EndGUI(Animancer.Editor.TransitionLibraries.TransitionLibraryWindow)">
            <summary>Repaints the `window` if necessary.</summary>
        </member>
        <member name="M:Animancer.Editor.TransitionLibraries.TransitionLibraryWindowHighlighter.DrawHighlightGUI(UnityEngine.Rect,System.Boolean,System.Boolean)">
            <summary>Draws highlights for the `area`.</summary>
        </member>
        <member name="T:Animancer.Editor.TransitionLibraries.TransitionSortMode">
            <summary>[Editor-Only]
            Sorting algorithms for <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Transitions"/>.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionSortMode
        </member>
        <member name="F:Animancer.Editor.TransitionLibraries.TransitionSortMode.Custom">
            <summary>Manual sorting.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionLibraries.TransitionSortMode.Name">
            <summary>Based on the transition file names.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionLibraries.TransitionSortMode.Path">
            <summary>Based on the transition file paths.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionLibraries.TransitionSortMode.TypeThenName">
            <summary>Based on the transition types then file names.</summary>
        </member>
        <member name="F:Animancer.Editor.TransitionLibraries.TransitionSortMode.TypeThenPath">
            <summary>Based on the transition types then file paths.</summary>
        </member>
        <member name="T:Animancer.AnimancerReflection">
            <summary>Reflection utilities used throughout Animancer.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/AnimancerReflection
        </member>
        <member name="F:Animancer.AnimancerReflection.AnyAccessBindings">
            <summary>Commonly used <see cref="T:System.Reflection.BindingFlags"/> combinations.</summary>
        </member>
        <member name="F:Animancer.AnimancerReflection.InstanceBindings">
            <summary>Commonly used <see cref="T:System.Reflection.BindingFlags"/> combinations.</summary>
        </member>
        <member name="F:Animancer.AnimancerReflection.StaticBindings">
            <summary>Commonly used <see cref="T:System.Reflection.BindingFlags"/> combinations.</summary>
        </member>
        <member name="M:Animancer.AnimancerReflection.CreateDefaultInstance(System.Type)">
            <summary>
            Creates a new instance of the `type` using its parameterless constructor if it has one or a fully
            uninitialized object if it doesn't. Or returns <c>null</c> if the <see cref="P:System.Type.IsAbstract"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerReflection.CreateDefaultInstance``1">
            <summary>
            Creates a <typeparamref name="T"/> using its parameterless constructor if it has one or a fully
            uninitialized object if it doesn't. Or returns <c>null</c> if the <see cref="P:System.Type.IsAbstract"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerReflection.GetAttribute``1(System.Reflection.ICustomAttributeProvider,System.Boolean)">
            <summary>[Animancer Extension]
            Returns the first <typeparamref name="TAttribute"/> attribute on the `member`
            or <c>null</c> if there is none.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerReflection.TryInvoke(System.Object,System.String,System.Reflection.BindingFlags,System.Type[],System.Object[])">
            <summary>Invokes a method with the specified `methodName` if it exists on the `obj`.</summary>
        </member>
        <member name="M:Animancer.AnimancerReflection.ToStringDetailed``1(``0,System.Boolean)">
            <summary>Returns a string describing the details of the `method`.</summary>
        </member>
        <member name="M:Animancer.AnimancerReflection.AppendDelegate``1(System.Text.StringBuilder,``0,System.Boolean)">
            <summary>Appends the details of the `method` to the `text`.</summary>
        </member>
        <member name="M:Animancer.AnimancerReflection.GetFullName(System.Reflection.MethodInfo)">
            <summary>Returns the `method`'s <c>DeclaringType.Name</c>.</summary>
        </member>
        <member name="M:Animancer.AnimancerReflection.TryGetInvocationListNonAlloc(System.MulticastDelegate,System.Delegate[]@)">
            <summary>
            Uses reflection to achieve the same as <see cref="M:System.Delegate.GetInvocationList"/> without allocating
            garbage every time.
            <list type="bullet">
            <item>If the delegate is <c>null</c> or , this method returns <c>false</c> and outputs <c>null</c>.</item>
            <item>If the underlying <c>delegate</c> field was not found, this method returns <c>false</c> and outputs <c>null</c>.</item>
            <item>If the delegate is not multicast, this method this method returns <c>true</c> and outputs <c>null</c>.</item>
            <item>If the delegate is multicast, this method this method returns <c>true</c> and outputs its invocation list.</item>
            </list>
            </summary>
        </member>
        <member name="M:Animancer.AnimancerReflection.GetInvocationList(System.MulticastDelegate)">
            <summary>
            Tries to use <see cref="M:Animancer.AnimancerReflection.TryGetInvocationListNonAlloc(System.MulticastDelegate,System.Delegate[]@)"/>.
            Otherwise uses the regular <see cref="M:System.MulticastDelegate.GetInvocationList"/>.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerReflection.GetNameCS(System.Type,System.Boolean)">
            <summary>Returns the name of the `type` as it would appear in C# code.</summary>
            <remarks>
            Returned values are stored in a dictionary to speed up repeated use.
            <para></para>
            <strong>Example:</strong>
            <para></para>
            <c>typeof(List&lt;float&gt;).FullName</c> would give you:
            <para></para>
            <c>System.Collections.Generic.List`1[[System.Single, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]</c>
            <para></para>
            This method would instead return <c>System.Collections.Generic.List&lt;float&gt;</c> if `fullName` is <c>true</c>, or
            just <c>List&lt;float&gt;</c> if it is <c>false</c>.
            </remarks>
        </member>
        <member name="M:Animancer.AnimancerReflection.AppendNameAndGenericArguments(System.Text.StringBuilder,System.Type,System.Boolean,System.Int32)">
            <summary>Appends the generic arguments of `type` (after skipping the specified number).</summary>
        </member>
        <member name="T:Animancer.AnimancerHelpUrlAttribute">
            <summary>[Assert-Conditional]
            A <see cref="T:UnityEngine.HelpURLAttribute"/> which points to Animancer's documentation.
            </summary>
        </member>
        <member name="M:Animancer.AnimancerHelpUrlAttribute.#ctor(System.String)">
            <summary>Creates a new <see cref="T:Animancer.AnimancerHelpUrlAttribute"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerHelpUrlAttribute.#ctor(System.Type)">
            <summary>Creates a new <see cref="T:Animancer.AnimancerHelpUrlAttribute"/>.</summary>
        </member>
        <member name="M:Animancer.AnimancerHelpUrlAttribute.GetApiDocumentationUrl(System.Type)">
            <summary>Returns a URL for the given `type`'s API Documentation page.</summary>
        </member>
        <member name="T:Animancer.DefaultFadeValueAttribute">
            <summary>[Editor-Conditional]
            A <see cref="T:Animancer.DefaultValueAttribute"/> which uses the <see cref="P:Animancer.AnimancerGraph.DefaultFadeDuration"/> and 0.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer/DefaultFadeValueAttribute
            
        </member>
        <member name="P:Animancer.DefaultFadeValueAttribute.Primary">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.DefaultFadeValueAttribute.#ctor">
            <summary>Creates a new <see cref="T:Animancer.DefaultValueAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.DefaultValueAttribute">
            <summary>[Editor-Conditional] Specifies the default value of a field and a secondary fallback.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/DefaultValueAttribute
        </member>
        <member name="P:Animancer.DefaultValueAttribute.Primary">
            <summary>The main default value.</summary>
        </member>
        <member name="P:Animancer.DefaultValueAttribute.Secondary">
            <summary>The fallback value to use if the target value was already equal to the <see cref="P:Animancer.DefaultValueAttribute.Primary"/>.</summary>
        </member>
        <member name="M:Animancer.DefaultValueAttribute.#ctor(System.Object,System.Object)">
            <summary>Creates a new <see cref="T:Animancer.DefaultValueAttribute"/>.</summary>
        </member>
        <member name="M:Animancer.DefaultValueAttribute.#ctor">
            <summary>Creates a new <see cref="T:Animancer.DefaultValueAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.DrawAfterEventsAttribute">
            <summary>[Editor-Conditional]
            Causes an Inspector field in an <see cref="T:Animancer.ITransition"/>
            to be drawn after its events where the events would normally be drawn last.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer/DrawAfterEventsAttribute
            
        </member>
        <member name="T:Animancer.EventNamesAttribute">
            <summary>[Editor-Conditional]
            Specifies a set of acceptable names for <see cref="T:Animancer.AnimancerEvent"/>s
            so they can display a warning in the Inspector if an unexpected name is used.
            </summary>
            
            <remarks>
            Placing this attribute on a type applies it to all fields in that type.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer/usage#event-names">
            Event Names</see>
            <para></para>
            <strong>Example:</strong><code>
            [EventNames(...)]// Apply to all fields in this class.
            public class AttackState
            {
                [SerializeField]
                [EventNames(...)]// Apply to only this field.
                private ClipTransition _Action;
            }
            </code>
            See the constructors for examples of their usage.
            </remarks>
            
            https://kybernetik.com.au/animancer/api/Animancer/EventNamesAttribute
            
        </member>
        <member name="P:Animancer.EventNamesAttribute.Names">
            <summary>[Editor-Only] The names that can be used for events in the attributed field.</summary>
        </member>
        <member name="P:Animancer.EventNamesAttribute.HasNames">
            <summary>[Editor-Only] Has the <see cref="P:Animancer.EventNamesAttribute.Names"/> array been initialized?</summary>
        </member>
        <member name="M:Animancer.EventNamesAttribute.#ctor">
            <summary>
            Creates a new <see cref="T:Animancer.EventNamesAttribute"/>
            with <see cref="P:Animancer.EventNamesAttribute.Names"/> from the attributed type or declaring type of the attributed member.</summary>
            
            <remarks>
            <strong>Example:</strong><code>
            [EventNames]// Use all StringReference fields in this class for any transitions in this class.
            public class AttackState
            {
                public static readonly StringReference HitStart = "Hit Start";
                public static readonly StringReference HitEnd = "Hit End";
            
                [SerializeField]
                [EventNames]// Use all StringReference fields in this class.
                private ClipTransition _Animation;
            
                protected virtual void Awake()
                {
                    _Animation.Events.SetCallback(HitStart, OnHitStart);
                    _Animation.Events.SetCallback(HitEnd, OnHitEnd);
                }
            
                private void OnHitStart() { }
                private void OnHitEnd() { }
            }
            </code></remarks>
        </member>
        <member name="M:Animancer.EventNamesAttribute.#ctor(System.String[])">
            <summary>Creates a new <see cref="T:Animancer.EventNamesAttribute"/> containing the specified `names`.</summary>
            <remarks>
            <strong>Example:</strong><code>
            public class AttackState
            {
                [SerializeField]
                [EventNames("Hit Start", "Hit End")]
                private ClipTransition _Animation;
            
                protected virtual void Awake()
                {
                    _Animation.Events.SetCallback("Hit Start", OnHitStart);
                    _Animation.Events.SetCallback("Hit End", OnHitEnd);
                }
            
                private void OnHitStart() { }
                private void OnHitEnd() { }
            }
            </code></remarks>
        </member>
        <member name="M:Animancer.EventNamesAttribute.#ctor(System.Type)">
            <summary>Creates a new <see cref="T:Animancer.EventNamesAttribute"/> with <see cref="P:Animancer.EventNamesAttribute.Names"/> from the `type`.</summary>
            
            <remarks>
            If the `type` is an enum, all of its values will be used.
            <para></para>
            Otherwise the values of all static <see cref="T:System.String"/> and
            <see cref="T:Animancer.StringReference"/> fields will be used.
            <para></para>
            <strong>Example:</strong><code>
            public class AttackState
            {
                public static readonly StringReference HitStart = "Hit Start";
                public static readonly StringReference HitEnd = "Hit End";
            
                [SerializeField]
                [EventNames(typeof(AttackState))]// Use all StringReference fields in this class.
                private ClipTransition _Animation;
            
                protected virtual void Awake()
                {
                    _Animation.Events.SetCallback(HitStart, OnHitStart);
                    _Animation.Events.SetCallback(HitEnd, OnHitEnd);
                }
            
                private void OnHitStart() { }
                private void OnHitEnd() { }
            }
            </code></remarks>
            
            <exception cref="T:System.ArgumentNullException"/>
        </member>
        <member name="M:Animancer.EventNamesAttribute.#ctor(System.Type,System.String)">
            <summary>
            Creates a new <see cref="T:Animancer.EventNamesAttribute"/> with <see cref="P:Animancer.EventNamesAttribute.Names"/> from a member in the `type`
            with the specified `name`.
            </summary>
            
            <remarks>
            The specified member must be static and can be a Field, Property, or Method.
            <para></para>
            The member type can be anything implementing <see cref="T:System.Collections.IEnumerable"/> (including arrays, lists, and
            coroutines).
            <para></para>
            <strong>Example:</strong><code>
            public class AttackState
            {
                public static readonly StringReference[] Events = { "Hit Start", "Hit End" };
            
                [SerializeField]
                [EventNames(typeof(AttackState), nameof(Events))]// Get the names from AttackState.Events.
                private ClipTransition _Animation;
            
                protected virtual void Awake()
                {
                    _Animation.Events.SetCallback(Events[0], OnHitStart);
                    _Animation.Events.SetCallback(Events[1], OnHitEnd);
                }
            
                private void OnHitStart() { }
                private void OnHitEnd() { }
            }
            </code></remarks>
            
            <exception cref="T:System.ArgumentNullException"/>
            <exception cref="T:System.ArgumentException">No member with the specified `name` exists in the `type`.</exception>
            
        </member>
        <member name="M:Animancer.EventNamesAttribute.Initialize(System.Reflection.MemberInfo)">
            <summary>Initializes the <see cref="P:Animancer.EventNamesAttribute.Names"/> if they weren't already set in the constructor.</summary>
        </member>
        <member name="M:Animancer.EventNamesAttribute.Initialize(System.Type)">
            <summary>Initializes the <see cref="P:Animancer.EventNamesAttribute.Names"/> if they weren't already set in the constructor.</summary>
        </member>
        <member name="M:Animancer.EventNamesAttribute.NamesToString(System.String,System.String)">
            <summary>Returns a string containing all the <see cref="P:Animancer.EventNamesAttribute.Names"/>.</summary>
        </member>
        <member name="T:Animancer.ThresholdLabelAttribute">
            <summary>[Editor-Conditional]
            Specifies a custom display label for the <c>Thresholds</c> column of a mixer transition.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer/ThresholdLabelAttribute
            
        </member>
        <member name="F:Animancer.ThresholdLabelAttribute.Label">
            <summary>[Editor-Only] The label.</summary>
        </member>
        <member name="M:Animancer.ThresholdLabelAttribute.#ctor(System.String)">
            <summary>Creates a new <see cref="T:Animancer.ThresholdLabelAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Units.AnimationSpeedAttribute">
            <summary>[Editor-Conditional] Applies a different GUI for an animation speed field.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Units/AnimationSpeedAttribute
        </member>
        <member name="M:Animancer.Units.AnimationSpeedAttribute.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Units.AnimationTimeAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Units.AnimationTimeAttribute">
            <summary>[Editor-Conditional]
            Causes a float field to display using 3 fields: Normalized, Seconds, and Frames.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions#time-fields">
            Time Fields</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Units/AnimationTimeAttribute
            
        </member>
        <member name="T:Animancer.Units.AnimationTimeAttribute.Units">
            <summary>A unit of measurement used by the <see cref="T:Animancer.Units.AnimationTimeAttribute"/>.</summary>
        </member>
        <member name="F:Animancer.Units.AnimationTimeAttribute.Units.Normalized">
            <summary>A value of 1 represents the end of the animation.</summary>
        </member>
        <member name="F:Animancer.Units.AnimationTimeAttribute.Units.Seconds">
            <summary>A value of 1 represents 1 second.</summary>
        </member>
        <member name="F:Animancer.Units.AnimationTimeAttribute.Units.Frames">
            <summary>A value of 1 represents 1 frame.</summary>
        </member>
        <member name="F:Animancer.Units.AnimationTimeAttribute.Tooltip">
            <summary>An explanation of the suffixes used in fields drawn by this attribute.</summary>
        </member>
        <member name="F:Animancer.Units.AnimationTimeAttribute.Multipliers">
            <summary>The <see cref="F:Animancer.Units.UnitsAttribute.Multipliers"/> used by instances of this attribute.</summary>
        </member>
        <member name="F:Animancer.Units.AnimationTimeAttribute.Suffixes">
            <summary>The <see cref="F:Animancer.Units.UnitsAttribute.Suffixes"/> used by instances of this attribute.</summary>
        </member>
        <member name="M:Animancer.Units.AnimationTimeAttribute.#ctor(Animancer.Units.AnimationTimeAttribute.Units)">
            <summary>Cretes a new <see cref="T:Animancer.Units.AnimationTimeAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Units.DegreesAttribute">
            <summary>[Editor-Conditional] Angle measured in <c>degrees</c> (<c>º</c>).</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/other/units">
            Units Attribute</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Units/DegreesAttribute
            
        </member>
        <member name="M:Animancer.Units.DegreesAttribute.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Units.DegreesAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Units.DegreesPerSecondAttribute">
            <summary>[Editor-Conditional] Rotational speed measured in <c>degrees per second</c> (<c>º/s</c>).</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/other/units">
            Units Attribute</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Units/DegreesPerSecondAttribute
            
        </member>
        <member name="M:Animancer.Units.DegreesPerSecondAttribute.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Units.DegreesPerSecondAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Units.MetersAttribute">
            <summary>[Editor-Conditional] Distance measured in <c>meters</c> (<c>m</c>).</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/other/units">
            Units Attribute</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Units/MetersAttribute
            
        </member>
        <member name="M:Animancer.Units.MetersAttribute.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Units.MetersAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Units.MetersPerSecondAttribute">
            <summary>[Editor-Conditional] Speed measured in <c>meters per second</c> (<c>m/s</c>).</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/other/units">
            Units Attribute</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Units/MetersPerSecondAttribute
            
        </member>
        <member name="M:Animancer.Units.MetersPerSecondAttribute.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Units.MetersPerSecondAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Units.MetersPerSecondPerSecondAttribute">
            <summary>[Editor-Conditional] Acceleration measured in <c>meters per second per second</c> (<c>m/s²</c>).</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/other/units">
            Units Attribute</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Units/MetersPerSecondPerSecondAttribute
            
        </member>
        <member name="M:Animancer.Units.MetersPerSecondPerSecondAttribute.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Units.MetersPerSecondPerSecondAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Units.MultiplierAttribute">
            <summary>[Editor-Conditional] A multiplier displayed with an <c>x</c> suffix.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/other/units">
            Units Attribute</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Units/MultiplierAttribute
            
        </member>
        <member name="M:Animancer.Units.MultiplierAttribute.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Units.MultiplierAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Units.SecondsAttribute">
            <summary>[Editor-Conditional] Time measured in <c>seconds</c> (<c>s</c>).</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/other/units">
            Units Attribute</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Units/SecondsAttribute
            
        </member>
        <member name="M:Animancer.Units.SecondsAttribute.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Units.SecondsAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Units.PerSecondAttribute">
            <summary>[Editor-Conditional] A value measured <c>per second</c> (<c>/s</c>).</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/other/units">
            Units Attribute</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Units/PerSecondAttribute
            
        </member>
        <member name="M:Animancer.Units.PerSecondAttribute.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Units.PerSecondAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Units.UnitsAttribute">
            <summary>[Editor-Conditional]
            Causes a float field to display a suffix to indicate what kind of units the value represents as well as
            displaying it as several different fields which convert the value between different units.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/other/units">
            Units Attribute</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Units/UnitsAttribute
            
        </member>
        <member name="F:Animancer.Units.UnitsAttribute.Multipliers">
            <summary>The multipliers to convert from the field's actual value to each unit type.</summary>
            <remarks><c>valueInUnitX = valueInBaseUnits * Multipliers[x];</c></remarks>
        </member>
        <member name="F:Animancer.Units.UnitsAttribute.Suffixes">
            <summary>The unit suffix to display at the end of the value in each field.</summary>
        </member>
        <member name="F:Animancer.Units.UnitsAttribute.UnitIndex">
            <summary>The index of the multiplier where the field stores its actual value.</summary>
            <remarks>The multiplier at this index must always be 1.</remarks>
        </member>
        <member name="P:Animancer.Units.UnitsAttribute.Rule">
            <summary>The validation rule applied to the value.</summary>
        </member>
        <member name="P:Animancer.Units.UnitsAttribute.IsOptional">
            <summary>Should the field have a toggle to set its value to <see cref="F:System.Single.NaN"/>?</summary>
        </member>
        <member name="P:Animancer.Units.UnitsAttribute.DefaultValue">
            <summary>The value to display if the actual value is <see cref="F:System.Single.NaN"/>.</summary>
        </member>
        <member name="P:Animancer.Units.UnitsAttribute.DisabledText">
            <summary>Optional text to display instead of the regular fields when the value is <see cref="F:System.Single.NaN"/>.</summary>
        </member>
        <member name="M:Animancer.Units.UnitsAttribute.#ctor">
            <summary>Creates a new <see cref="T:Animancer.Units.UnitsAttribute"/>.</summary>
        </member>
        <member name="M:Animancer.Units.UnitsAttribute.#ctor(System.String)">
            <summary>Creates a new <see cref="T:Animancer.Units.UnitsAttribute"/>.</summary>
        </member>
        <member name="M:Animancer.Units.UnitsAttribute.#ctor(System.Single[],System.String[],System.Int32)">
            <summary>Creates a new <see cref="T:Animancer.Units.UnitsAttribute"/>.</summary>
        </member>
        <member name="T:Animancer.Units.Editor.CompactUnitConversionCache">
            <summary>[Editor-Only]
            A system for formatting floats as strings that fit into a limited area and storing the results so they can be
            reused to minimise the need for garbage collection, particularly for string construction.
            </summary>
            
            <remarks>
            This system only affects the display value. Once you select a field, it shows its actual value.
            <para></para>
            <strong>Example:</strong>
            With <c>"x"</c> as the suffix:
            <list type="bullet">
            <item><c>1.111111</c> could instead show <c>1.111~x</c>.</item>
            <item><c>0.00001234567</c> would normally show <c>1.234567e-05</c>, but with this it instead shows <c>0~x</c>
            because very small values generally aren't useful.</item>
            <item><c>99999999</c> shows <c>1e+08x</c> because very large values are already approximations and trying to
            format them correctly would be very difficult.</item>
            </list>
            </remarks>
            
            https://kybernetik.com.au/animancer/api/Animancer.Units.Editor/CompactUnitConversionCache
            https://kybernetik.com.au/inspector-gadgets/api/InspectorGadgets.Editor/CompactUnitConversionCache
            
        </member>
        <member name="P:Animancer.Units.Editor.CompactUnitConversionCache.ShowApproximations">
            <summary>Should the fields show approximations if the value is too long for the GUI?</summary>
        </member>
        <member name="F:Animancer.Units.Editor.CompactUnitConversionCache.Suffix">
            <summary>The suffix added to the end of each value.</summary>
        </member>
        <member name="F:Animancer.Units.Editor.CompactUnitConversionCache.ApproximateSuffix">
            <summary>The <see cref="F:Animancer.Units.Editor.CompactUnitConversionCache.Suffix"/> with a <c>~</c> before it to indicate an approximation.</summary>
        </member>
        <member name="F:Animancer.Units.Editor.CompactUnitConversionCache.ConvertedZero">
            <summary>The value <c>0</c> with the <see cref="F:Animancer.Units.Editor.CompactUnitConversionCache.Suffix"/>.</summary>
        </member>
        <member name="F:Animancer.Units.Editor.CompactUnitConversionCache.ConvertedSmallPositive">
            <summary>The value <c>0</c> with the <see cref="F:Animancer.Units.Editor.CompactUnitConversionCache.ApproximateSuffix"/>.</summary>
        </member>
        <member name="F:Animancer.Units.Editor.CompactUnitConversionCache.ConvertedSmallNegative">
            <summary>The value <c>-0</c> with the <see cref="F:Animancer.Units.Editor.CompactUnitConversionCache.ApproximateSuffix"/>.</summary>
        </member>
        <member name="F:Animancer.Units.Editor.CompactUnitConversionCache._SuffixWidth">
            <summary>The pixel width of the <see cref="F:Animancer.Units.Editor.CompactUnitConversionCache.Suffix"/> when drawn by <see cref="P:UnityEditor.EditorStyles.numberField"/>.</summary>
        </member>
        <member name="F:Animancer.Units.Editor.CompactUnitConversionCache.Caches">
            <summary>The caches for each character count.</summary>
            <remarks><c>this[x]</c> is a cache that outputs strings with <c>x</c> characters.</remarks>
        </member>
        <member name="F:Animancer.Units.Editor.CompactUnitConversionCache._WidthCache">
            <summary>Strings mapped to the width they would require for a <see cref="P:UnityEditor.EditorStyles.numberField"/>.</summary>
        </member>
        <member name="F:Animancer.Units.Editor.CompactUnitConversionCache._FieldPadding">
            <summary>Padding around the text in a <see cref="P:UnityEditor.EditorStyles.numberField"/>.</summary>
        </member>
        <member name="F:Animancer.Units.Editor.CompactUnitConversionCache._ApproximateSymbolWidth">
            <summary>The pixel width of the <c>~</c> character when drawn by <see cref="P:UnityEditor.EditorStyles.numberField"/>.</summary>
        </member>
        <member name="F:Animancer.Units.Editor.CompactUnitConversionCache._DecimalSeparator">
            <summary>The character(s) used to separate decimal values in the current OS language.</summary>
        </member>
        <member name="F:Animancer.Units.Editor.CompactUnitConversionCache.SmallExponentialThreshold">
            <summary>Values smaller than this become <c>0~</c> or <c>-0~</c>.</summary>
        </member>
        <member name="F:Animancer.Units.Editor.CompactUnitConversionCache.LargeExponentialThreshold">
            <summary>Values larger than this can't be approximated.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.CompactUnitConversionCache.#ctor(System.String)">
            <summary>Creates a new <see cref="T:Animancer.Units.Editor.CompactUnitConversionCache"/>.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.CompactUnitConversionCache.Convert(System.Single,System.Single)">
            <summary>
            Returns a cached string representing the `value` trimmed to fit within the `width` (if necessary) and with
            the <see cref="F:Animancer.Units.Editor.CompactUnitConversionCache.Suffix"/> added on the end.
            </summary>
        </member>
        <member name="M:Animancer.Units.Editor.CompactUnitConversionCache.CalculateCacheIndex(System.Single,System.Single)">
            <summary>Calculate the index of the cache to use for the given parameters.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.CompactUnitConversionCache.GetCache(System.Int32)">
            <summary>Creates and returns a cache for the specified `characterCount`.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.CompactUnitConversionCache.GetExponentialFormat(System.Int32)">
            <summary>Returns a format string to include the specified number of `digits` in an exponential number.</summary>
        </member>
        <member name="T:Animancer.Units.Editor.AnimationSpeedAttributeDrawer">
            <summary>[Editor-Only]
            A <see cref="T:UnityEditor.PropertyDrawer"/> for fields with an <see cref="T:Animancer.Units.Editor.AnimationSpeedAttributeDrawer"/>
            which displays them using an 'x' suffix.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer.Units.Editor/AnimationSpeedAttributeDrawer
        </member>
        <member name="M:Animancer.Units.Editor.AnimationSpeedAttributeDrawer.GetLineCount(UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.Units.Editor.AnimationTimeAttributeDrawer">
            <summary>[Editor-Only]
            A <see cref="T:UnityEditor.PropertyDrawer"/> for <see cref="T:System.Single"/> fields with a <see cref="T:Animancer.Units.UnitsAttribute"/>
            which displays them using 3 fields: Normalized, Seconds, and Frames.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions#time-fields">
            Time Fields</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.Units.Editor/AnimationTimeAttributeDrawer
        </member>
        <member name="P:Animancer.Units.Editor.AnimationTimeAttributeDrawer.NextDefaultValue">
            <summary>The default value to be used for the next field drawn by this attribute.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.AnimationTimeAttributeDrawer.GetLineCount(UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Units.Editor.AnimationTimeAttributeDrawer.OnGUI(UnityEngine.Rect,UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Units.Editor.AnimationTimeAttributeDrawer.OnGUI(UnityEngine.Rect,UnityEngine.GUIContent,System.Single@)">
            <summary>Draws the GUI for this attribute.</summary>
        </member>
        <member name="T:Animancer.Units.Editor.AnimationTimeAttributeSettings">
            <summary>[Editor-Only] Options to determine how <see cref="T:Animancer.Units.AnimationTimeAttribute"/> displays.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Units.Editor/AnimationTimeAttributeSettings
        </member>
        <member name="P:Animancer.Units.Editor.AnimationTimeAttributeSettings.DisplayName">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.Units.Editor.AnimationTimeAttributeSettings.Index">
            <inheritdoc/>
        </member>
        <member name="F:Animancer.Units.Editor.AnimationTimeAttributeSettings.showApproximations">
            <summary>Should time fields show approximations if the value is too long for the GUI?</summary>
            <remarks>This setting is used by <see cref="T:Animancer.Units.Editor.CompactUnitConversionCache"/>.</remarks>
        </member>
        <member name="F:Animancer.Units.Editor.AnimationTimeAttributeSettings.showNormalized">
            <summary>Should the <see cref="F:Animancer.Units.AnimationTimeAttribute.Units.Normalized"/> field be shown?</summary>
            <remarks>This setting is ignored for fields which directly store the normalized value.</remarks>
        </member>
        <member name="F:Animancer.Units.Editor.AnimationTimeAttributeSettings.showSeconds">
            <summary>Should the <see cref="F:Animancer.Units.AnimationTimeAttribute.Units.Seconds"/> field be shown?</summary>
            <remarks>This setting is ignored for fields which directly store the seconds value.</remarks>
        </member>
        <member name="F:Animancer.Units.Editor.AnimationTimeAttributeSettings.showFrames">
            <summary>Should the <see cref="F:Animancer.Units.AnimationTimeAttribute.Units.Frames"/> field be shown?</summary>
            <remarks>This setting is ignored for fields which directly store the frame value.</remarks>
        </member>
        <member name="T:Animancer.Units.Editor.UnitsAttributeDrawer">
            <summary>[Editor-Only] A <see cref="T:UnityEditor.PropertyDrawer"/> for fields with a <see cref="T:Animancer.Units.UnitsAttribute"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer.Units.Editor/UnitsAttributeDrawer
        </member>
        <member name="P:Animancer.Units.Editor.UnitsAttributeDrawer.Attribute">
            <summary>The attribute on the field being drawn.</summary>
        </member>
        <member name="P:Animancer.Units.Editor.UnitsAttributeDrawer.DisplayConverters">
            <summary>The converters used to generate display strings for each of the fields.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.Initialize">
            <summary>Gathers the <see cref="P:Animancer.Units.Editor.UnitsAttributeDrawer.Attribute"/> and sets up the <see cref="P:Animancer.Units.Editor.UnitsAttributeDrawer.DisplayConverters"/>.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.Initialize(System.Attribute)">
            <summary>Gathers the <see cref="P:Animancer.Units.Editor.UnitsAttributeDrawer.Attribute"/> and sets up the <see cref="P:Animancer.Units.Editor.UnitsAttributeDrawer.DisplayConverters"/>.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.GetPropertyHeight(UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.GetLineCount(UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <summary>Determines how many lines tall the `property` should be.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.BeginProperty(UnityEngine.Rect,UnityEditor.SerializedProperty,UnityEngine.GUIContent@,System.Single@)">
            <summary>Begins a GUI property block to be ended by <see cref="M:Animancer.Units.Editor.UnitsAttributeDrawer.EndProperty(UnityEngine.Rect,UnityEditor.SerializedProperty,System.Single@)"/>.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.EndProperty(UnityEngine.Rect,UnityEditor.SerializedProperty,System.Single@)">
            <summary>Ends a GUI property block started by <see cref="M:Animancer.Units.Editor.UnitsAttributeDrawer.BeginProperty(UnityEngine.Rect,UnityEditor.SerializedProperty,UnityEngine.GUIContent@,System.Single@)"/>.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.OnGUI(UnityEngine.Rect,UnityEditor.SerializedProperty,UnityEngine.GUIContent)">
            <summary>Draws this attribute's fields for the `property`.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.DoFieldGUI(UnityEngine.Rect,UnityEngine.GUIContent,System.Single@)">
            <summary>Draws this attribute's fields.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.CountActiveFields(System.Int32@,System.Int32@)">
            <summary>Counts the number of active <see cref="F:Animancer.Units.UnitsAttribute.Multipliers"/>.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.HasKeyboardControl(System.Int32,System.Int32)">
            <summary>Is the <see cref="P:UnityEngine.GUIUtility.keyboardControl"/> in the specified range (inclusive)?</summary>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.DoSpecialFloatField(UnityEngine.Rect,UnityEngine.GUIContent,System.Single,Animancer.Units.Editor.CompactUnitConversionCache)">
            <summary>
            Draws a <see cref="M:UnityEditor.EditorGUI.FloatField(UnityEngine.Rect,UnityEngine.GUIContent,System.Single)"/> with an alternate string
            when it's not selected (for example, "1" might display as "1s" to indicate "seconds").
            </summary>
            <remarks>
            This method treats most <see cref="T:UnityEngine.EventType"/>s normally,
            but for <see cref="F:UnityEngine.EventType.Repaint"/> it instead draws a text field with the converted string.
            </remarks>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.DoOptionalBeforeGUI(System.Boolean,UnityEngine.Rect,UnityEngine.Rect@,System.Boolean@,System.Single@)">
            <summary>Prepares the details for drawing a toggle to set the field to <see cref="F:System.Single.NaN"/>.</summary>
            <remarks>Call this before drawing the field then call <see cref="M:Animancer.Units.Editor.UnitsAttributeDrawer.DoOptionalAfterGUI(System.Boolean,UnityEngine.Rect,System.Single@,System.Single,System.Boolean,System.Single)"/> after it.</remarks>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.DoOptionalAfterGUI(System.Boolean,UnityEngine.Rect,System.Single@,System.Single,System.Boolean,System.Single)">
            <summary>Draws a toggle to set the `value` to <see cref="F:System.Single.NaN"/> when disabled.</summary>
        </member>
        <member name="M:Animancer.Units.Editor.UnitsAttributeDrawer.GetDisplayValue(System.Single,System.Single)">
            <summary>Returns the value that should be displayed for a given field.</summary>
        </member>
        <member name="T:Animancer.NameCache">
            <summary>[Assert-Only]
            A simple system for caching <see cref="P:UnityEngine.Object.name"/> since it allocates garbage every time it's accessed.
            </summary>
        </member>
        <member name="M:Animancer.NameCache.GetCachedName(UnityEngine.Object)">
            <summary>Caches and returns the <see cref="P:UnityEngine.Object.name"/>.</summary>
        </member>
        <member name="M:Animancer.NameCache.TryToString(System.Object,System.String@)">
            <summary>Tries to get the <see cref="P:UnityEngine.Object.name"/> or <see cref="M:System.Object.ToString"/>.</summary>
        </member>
        <member name="M:Animancer.NameCache.Clear">
            <summary>Clears all cached names so they will be re-gathered when next accessed.</summary>
        </member>
        <member name="M:Animancer.NameCache.SetName(UnityEngine.Object,System.String)">
            <summary>Sets the <see cref="P:UnityEngine.Object.name"/> and caches it.</summary>
        </member>
        <member name="T:Animancer.OptionalWarning">
            <summary>
            Bitwise flags used to determine which warnings Animancer should give.
            <para></para>
            <strong>These warnings are all optional</strong>.
            Feel free to disable any of them if you understand the <em>potential</em> issues they're referring to.
            </summary>
            
            <remarks>
            All warnings are enabled by default, but are compiled out of runtime builds (except development builds).
            <para></para>
            You can manually disable warnings using the <c>AnimancerSettings</c> asset
            or the Animancer Settings panel in the Animancer Tools Window (<c>Window/Animation/Animancer Tools</c>).
            <para></para>
            <strong>Example:</strong>
            You can put a method like this in any class to disable whatever warnings you don't want on startup:
            <para></para><code>
            #if UNITY_ASSERTIONS
            [UnityEngine.RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.BeforeSceneLoad)]
            private static void DisableAnimancerWarnings()
            {
                Animancer.OptionalWarning.ProOnly.Disable();
                
                // You could disable OptionalWarning.All, but that's not recommended for obvious reasons.
            }
            #endif
            </code></remarks>
            
            https://kybernetik.com.au/animancer/api/Animancer/OptionalWarning
            
        </member>
        <member name="F:Animancer.OptionalWarning.None">
            <summary><c>default</c></summary>
        </member>
        <member name="F:Animancer.OptionalWarning.ProOnly">
            <summary>
            A <see href="https://kybernetik.com.au/animancer/docs/introduction/features">Pro-Only Feature</see>
            has been used in <see href="https://kybernetik.com.au/animancer/redirect/lite">Animancer Lite</see>.
            </summary>
            
            <remarks>
            Some <see href="https://kybernetik.com.au/animancer/docs/introduction/features">Features</see>
            are only available in <see href="https://kybernetik.com.au/animancer/redirect/pro">Animancer Pro</see>.
            <para></para>
            <see href="https://kybernetik.com.au/animancer/redirect/lite">Animancer Lite</see>
            allows you to try out those features in the Unity Editor and gives this warning the
            first time each one is used to inform you that they will not work in runtime builds.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.CreateGraphDuringGuiEvent">
            <summary>
            An <see cref="!:AnimancerComponent.Graph"/> is being initialized
            during a type of GUI event that isn't supposed to cause side effects.
            </summary>
            
            <remarks>
            <see cref="F:UnityEngine.EventType.Layout"/> and <see cref="F:UnityEngine.EventType.Repaint"/>
            should display the current details of things, but they should not modify things.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.AnimatorDisabled">
            <summary>
            The <see cref="!:AnimancerComponent.Animator"/> is disabled so Animancer won't be able to play animations.
            </summary>
            
            <remarks>
            The <see cref="T:UnityEngine.Animator"/> doesn't need an Animator Controller,
            it just needs to be enabled via the checkbox in the Inspector
            or by setting <c>animancerComponent.Animator.enabled = true;</c> in code.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.NativeControllerHumanoid">
            <summary>
            An <see cref="P:UnityEngine.Animator.runtimeAnimatorController"/> is assigned
            but the Rig is Humanoid so it can't be blended with Animancer.
            </summary>
            
            <remarks>
            <see href="https://kybernetik.com.au/animancer/docs/manual/animator-controllers#native">Native</see>
            Animator Controllers can blend with Animancer on Generic Rigs, but not on Humanoid Rigs
            (you can swap back and forth between the Animator Controller and Animancer,
            but it won't smoothly blend between them).
            <para></para>
            If you don't intend to blend between them, you can just disable this warning.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.NativeControllerHybrid">
            <summary>
            An <see cref="P:UnityEngine.Animator.runtimeAnimatorController"/> is assigned while also using a
            <see cref="!:HybridAnimancerComponent"/>.
            </summary>
            
            <remarks>
            Either assign the <see cref="P:UnityEngine.Animator.runtimeAnimatorController"/> to use it as a Native Animator
            Controller or assign the <see cref="!:HybridAnimancerComponent.Controller"/> to use it as a Hybrid Animator
            Controller. The differences are explained on the
            <see href="https://kybernetik.com.au/animancer/docs/manual/animator-controllers">Animator Controllers</see>
            page.
            <para></para>
            It is possible to use both, but it usually only happens when misunderstanding how the system works.
            If you do want both, just disable this warning.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.EndEventInterrupt">
            <summary>
            An <see href="https://kybernetik.com.au/animancer/docs/manual/events/end">End Event</see>
            didn't actually end the animation.
            </summary>
            
            <remarks>
            Animancer doesn't automatically do anything during an End Event
            so it's up to you to end the animation (usually by playing something else).
            <para></para>
            This warning is given when the event isn't used to stop the animation that caused it
            (usually by playing something else). This often indicates that the event hasn't been
            configured correctly, however it is sometimes intentional such as if the event doesn't
            immediately stop the animation but sets a flag to indicate the animation has ended for
            another system to act on at a later time. In that case this warning should be disabled.
            <para></para>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/end">End Events</see>
            are triggered every frame after their time has passed, so in this case it might be
            necessary to clear the event or simply use a regular
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">Animancer Event</see>.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.EventPlayMismatch">
            <summary>
            An <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">Animancer Event</see>
            triggered by one character was used to play an animation on a different character.
            </summary>
            
            <remarks>
            This most commonly happens when a Transition is shared by multiple characters and they
            all register their own callbacks to its events which leads to those events controlling
            the wrong character. The
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer/shared">Shared Events</see>
            page explains various ways this issue can be avoided.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.UselessEvent">
            <summary>
            An <see cref="T:Animancer.AnimancerEvent"/> that does nothing was invoked.
            Most likely it was not configured correctly.
            </summary>
            
            <remarks>
            Unused events should be removed to avoid wasting performance checking and invoking them.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.UnsupportedEvents">
            <summary>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">Animancer Events</see>
            are being used on a state which does not properly support them so they might not work as intended.
            </summary>
            
            <remarks>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">Animancer Events</see> on a
            <see cref="T:Animancer.ControllerState"/> will be triggered based on its <see cref="P:Animancer.AnimancerState.NormalizedTime"/>,
            which comes from the current state of its Animator Controller regardless of which state that may be.
            <para></para>
            If you intend for the event to be associated with a specific state inside the Animator Controller,
            you need to use Unity's regular
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animation">Animation Events</see>
            instead.
            <para></para>
            But if you intend the event to be triggered by any state inside the Animator Controller,
            then you can simply disable this warning.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.UnsupportedIK">
            <summary>
            <see href="https://kybernetik.com.au/animancer/docs/manual/ik">Inverse Kinematics</see>
            cannot be dynamically enabled on some
            <see href="https://kybernetik.com.au/animancer/docs/manual/playing/states">State</see> types.
            </summary>
            
            <remarks>
            To use IK on a <see cref="T:Animancer.ControllerState"/>
            you must instead enable it on the desired layer inside the Animator Controller.
            <para></para>
            IK is not supported by <see cref="T:Animancer.PlayableAssetState"/>.
            <para></para>
            Setting <see cref="P:Animancer.AnimancerNode.ApplyAnimatorIK"/> on such a state will simply do nothing,
            so feel free to disable this warning if you are enabling IK on states without checking their type.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.MixerMinChildren">
            <summary>
            A Mixer State is being initialized with its <see cref="!:AnimancerNode.ChildCount"/> &lt;= 1.
            </summary>
            
            <remarks>
            The purpose of a mixer is to mix multiple child states
            so you are probably initializing it with incorrect parameters.
            <para></para>
            A mixer with only one child will simply play that child,
            so feel free to disable this warning if that's what you intend to do.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.MixerSynchronizeZeroLength">
            <summary>
            A Mixer State is synchronizing a child with <see cref="P:Animancer.AnimancerState.Length"/> = 0.
            </summary>
            
            <remarks>
            Synchronization is based on the <see cref="P:Animancer.AnimancerState.NormalizedTime"/>
            which can't be calculated if the <see cref="P:Animancer.AnimancerState.Length"/> is 0.
            <para></para>
            Some state types can change their <see cref="P:Animancer.AnimancerState.Length"/>,
            in which case you can just disable this warning.
            But otherwise, the indicated state should not be added to the synchronization list.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.ExpectFade">
            <summary>
            When a transition with a non-zero <see cref="P:Animancer.ITransition.FadeDuration"/>
            creates a state, that state will log this warning if it's ever played
            without a fade duration.
            </summary>
            <remarks>
            This helps identify situations where a state is accidentally played directly
            where the transition should be played instead to allow it to apply its fade
            and any other details.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.FadeEasingBounds">
            <summary>
            A <see href="https://kybernetik.com.au/animancer/docs/manual/blending/fading/custom">Custom Fade</see>
            is being started but its weight calculation does not go from 0 to 1.
            </summary>
            
            <remarks>
            The <see cref="P:Animancer.FadeGroup.Easing"/> method is expected to return 0 when the parameter is 0 and
            1 when the parameter is 1. It can do anything you want with other values,
            but starting or ending at different values will likely lead to undesirable results.
            <para></para>
            If your <see cref="P:Animancer.FadeGroup.Easing"/> method is expensive you could disable this warning to save
            some performance, but violating the above guidelines is not recommended.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.AnimatorSpeed">
            <summary>
            The <see cref="P:UnityEngine.Animator.speed"/> property does not affect Animancer. 
            Use <see cref="!:AnimancerGraph.Speed"/> instead.
            </summary>
            
            <remarks>
            The <see cref="P:UnityEngine.Animator.speed"/> property only works with Animator Controllers but does not affect the
            Playables API so Animancer has its own <see cref="!:AnimancerGraph.Speed"/> property.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.UnusedNode">
            <summary>
            An <see cref="P:Animancer.AnimancerNodeBase.Graph"/> is null during finalization (garbage collection).
            </summary>
            
            <remarks>
            This probably means that node was never used for anything and should not have been created.
            <para></para>
            This warning can be prevented for a specific node by calling <see cref="M:Animancer.AnimancerNodeBase.MarkAsUsed(Animancer.AnimancerNodeBase)"/>.
            <para></para>
            To minimise the performance cost of checking this warning, it does not capture the stack trace of the
            node's creation by default. However, you can enable <see cref="P:Animancer.AnimancerNode.TraceConstructor"/> on startup
            so that it can include the stack trace in the warning message for any nodes that end up being unused.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.PlayableAssetAnimatorBinding">
            <summary>
            <see cref="M:Animancer.PlayableAssetState.InitializeBindings"/> is trying to bind to the same <see cref="T:UnityEngine.Animator"/>
            that is being used by Animancer.
            </summary>
            <remarks>
            Doing this will replace Animancer's output so its animations would not work anymore.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.CloneComplexState">
            <summary>
            <see cref="M:Animancer.AnimancerLayer.GetOrCreateWeightlessState(Animancer.AnimancerState)"/> is cloning a complex state such as a
            <see cref="T:Animancer.ManualMixerState"/> or <see cref="T:Animancer.ControllerState"/>.
            This has a larger performance cost than cloning a <see cref="T:Animancer.ClipState"/> and these states
            generally have parameters that need to be controlled which may result in undesired behaviour
            if your scripts are only expecting to have one state to control.
            </summary>
            <remarks>
            The <see href="https://kybernetik.com.au/animancer/docs/manual/blending/fading/modes">Fade Modes</see>
            page explains why clones are created.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.DynamicAnimation">
            <summary>
            Unity doesn't suppport dynamically creating animations for Animancer in runtime builds
            so this warning is given when attempting to use an animation which isn't saved as an
            asset to explain this limitation as early as possible.
            </summary>
            
            <remarks>
            This warning should be disabled if you only intend to use the animation in the
            Unity Editor and not create it in a runtime build.
            </remarks>
        </member>
        <member name="F:Animancer.OptionalWarning.StringReference">
            <summary>
            <see cref="T:Animancer.StringReference"/>s are generally more efficient for comparisons
            than raw <see cref="T:System.String"/>s and are not interchangeable so references should be preferred.
            </summary>
        </member>
        <member name="F:Animancer.OptionalWarning.All">
            <summary>All warning types.</summary>
        </member>
        <member name="T:Animancer.Validate">
            https://kybernetik.com.au/animancer/api/Animancer/Validate
            <summary>
            Enforces various rules throughout the system, most of which are compiled out if UNITY_ASSERTIONS is not defined
            (by default, it is only defined in the Unity Editor and in Development Builds).
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer/Validate
            
            https://kybernetik.com.au/animancer/api/Animancer/Validate
        </member>
        <member name="F:Animancer.Validate._DisabledWarnings">
            <summary>[Assert-Only]
            The <see cref="T:Animancer.OptionalWarning"/> flags that are currently disabled (default none).
            </summary>
        </member>
        <member name="M:Animancer.Validate.Disable(Animancer.OptionalWarning)">
            <summary>[Animancer Extension] [Assert-Conditional]
            Disables the specified warning type. Supports bitwise combinations.
            </summary>
            <remarks>
            <strong>Example:</strong>
            You can put a method like this in any class to disable whatever warnings you don't want on startup:
            <para></para><code>
            #if UNITY_ASSERTIONS
            [UnityEngine.RuntimeInitializeOnLoadMethod(UnityEngine.RuntimeInitializeLoadType.BeforeSceneLoad)]
            private static void DisableAnimancerWarnings()
            {
                Animancer.OptionalWarning.ProOnly.Disable();
                
                // You could disable OptionalWarning.All, but that's not recommended for obvious reasons.
            }
            #endif
            </code></remarks>
        </member>
        <member name="M:Animancer.Validate.Enable(Animancer.OptionalWarning)">
            <summary>[Animancer Extension] [Assert-Conditional]
            Enables the specified warning type. Supports bitwise combinations.
            </summary>
        </member>
        <member name="M:Animancer.Validate.SetEnabled(Animancer.OptionalWarning,System.Boolean)">
            <summary>[Animancer Extension] [Assert-Conditional]
            Enables or disables the specified warning type. Supports bitwise combinations.
            </summary>
        </member>
        <member name="M:Animancer.Validate.Log(Animancer.OptionalWarning,System.String,System.Object)">
            <summary>[Animancer Extension] [Assert-Conditional]
            Logs the `message` as a warning if the `type` is enabled.
            </summary>
            <remarks>Does nothing if the `message` is <c>null</c>.</remarks>
        </member>
        <member name="M:Animancer.Validate.IsEnabled(Animancer.OptionalWarning)">
            <summary>[Animancer Extension] [Assert-Only] Are none of the specified warning types disabled?</summary>
        </member>
        <member name="M:Animancer.Validate.IsDisabled(Animancer.OptionalWarning)">
            <summary>[Animancer Extension] [Assert-Only] Are all of the specified warning types disabled?</summary>
        </member>
        <member name="M:Animancer.Validate.DisableTemporarily(Animancer.OptionalWarning)">
            <summary>[Animancer Extension] [Assert-Only]
            Disables the specified warnings and returns those that were previously enabled.
            </summary>
            <remarks>Call <see cref="M:Animancer.Validate.Enable(Animancer.OptionalWarning)"/> on the returned value to re-enable it.</remarks>
        </member>
        <member name="P:Animancer.Validate.PermanentlyDisabledWarnings">
            <summary>[Assert-Only] Warnings that are automatically disabled</summary>
            <remarks>
            This value is stored in <see cref="T:UnityEngine.PlayerPrefs"/>
            and can be manually edited via <see cref="F:Animancer.Strings.AnimancerSettingsPath"/>.
            </remarks>
        </member>
        <member name="M:Animancer.Validate.AssertAnimationClip(UnityEngine.AnimationClip,System.Boolean,System.String)">
            <summary>[Assert-Conditional]
            Throws if the `clip` is <c>null</c>, not an asset, or marked as <see cref="P:UnityEngine.AnimationClip.legacy"/>.
            </summary>
            <exception cref="T:System.NullReferenceException"/>
            <exception cref="T:System.ArgumentException"/>
        </member>
        <member name="M:Animancer.Validate.AssertGraph(Animancer.AnimancerNode,Animancer.AnimancerGraph)">
            <summary>[Assert-Conditional] Throws if the <see cref="P:Animancer.AnimancerNodeBase.Graph"/> is not the `graph`.</summary>
            <exception cref="T:System.ArgumentException"/>
        </member>
        <member name="M:Animancer.Validate.AssertPlayable(Animancer.AnimancerNode)">
            <summary>[Assert-Conditional] Throws if the `node`'s <see cref="T:UnityEngine.Playables.Playable"/> is invalid.</summary>
            <exception cref="T:System.InvalidOperationException"/>
        </member>
        <member name="M:Animancer.Validate.AssertCanRemoveChild(Animancer.AnimancerState,System.Collections.Generic.IList{Animancer.AnimancerState},System.Int32)">
            <summary>[Assert-Conditional]
            Throws if the `state` was not actually assigned to its specified <see cref="P:Animancer.AnimancerNode.Index"/> in
            the `states`.
            </summary>
            <exception cref="T:System.InvalidOperationException"/>
            <exception cref="T:System.IndexOutOfRangeException">
            The <see cref="P:Animancer.AnimancerNode.Index"/> is larger than the number of `states`.
            </exception>
        </member>
        <member name="M:Animancer.Validate.AssertSetWeight(Animancer.AnimancerNode,System.Single)">
            <summary>[Assert-Conditional] Throws if the `weight` is negative, infinity, or NaN.</summary>
            <exception cref="T:System.ArgumentOutOfRangeException"/>
        </member>
        <member name="P:Animancer.Validate.IgnoreNext">
            <summary>[Internal] [Lite-Only] The next Lite feature validation will ignore this object.</summary>
        </member>
        <member name="M:Animancer.Validate.TryIgnore(System.Object)">
            <summary>[Internal] [Lite-Only] Clears <see cref="P:Animancer.Validate.IgnoreNext"/> and returns true if it matched the `node`.</summary>
        </member>
        <member name="M:Animancer.Validate.LiteFadeDuration(System.Object,System.Single@,System.Object)">
            <summary>[Internal] [Lite-Only]
            Ensures that only 0 or the default 0.25s fade duration can be used (warn in Editor, enforce at Runtime).
            </summary>
        </member>
        <member name="M:Animancer.Validate.LiteWeight(System.Object,System.Single@,System.Object)">
            <summary>[Internal] [Lite-Only]
            Ensures that only 0 or 1 weight can be used (warn in Editor, enforce at Runtime).
            </summary>
        </member>
        <member name="M:Animancer.Validate.LiteSpeed(System.Object,System.Single@,System.Object)">
            <summary>[Internal] [Lite-Only]
            Ensures that only 1 speed can be used (warn in Editor, enforce at Runtime).
            </summary>
        </member>
        <member name="M:Animancer.Validate.LiteTime(System.Object,System.Double@,System.Object)">
            <summary>[Internal] [Lite-Only]
            Ensures that only 0 time can be used (warn in Editor, enforce at Runtime).
            </summary>
        </member>
        <member name="M:Animancer.Validate.LiteLayerListType(Animancer.AnimancerLayerList)">
            <summary>[Internal] [Lite-Only]
            Ensures that only the inbuilt <see cref="T:Animancer.AnimancerLayerList"/> can be used (warn in Editor,
            enforce at Runtime).
            </summary>
        </member>
        <member name="M:Animancer.Validate.LiteNodeType(Animancer.AnimancerNode)">
            <summary>[Internal] [Lite-Only]
            Ensures that only inbuilt <see cref="T:Animancer.AnimancerNode"/> types can be used (warn in Editor, enforce at
            Runtime).
            </summary>
        </member>
        <member name="M:Animancer.Validate.LiteUpdatableType(Animancer.IUpdatable,System.Object)">
            <summary>[Internal] [Lite-Only]
            Ensures that only inbuilt <see cref="T:Animancer.AnimancerNode"/> types can be used (warn in Editor, enforce at
            Runtime).
            </summary>
        </member>
        <member name="F:Animancer.Validate.ProOnlyMessage">
            <summary>[Lite-Only]
            A message which explains that some features are only available in the Unity Editor for trial purposes in
            Animancer Lite, but not at runtime.
            </summary>
        </member>
        <member name="M:Animancer.Validate.LogProOnlyFeature(System.String,System.String,System.Object)">
            <summary>[Internal] [Lite-Only]
            Logs a message the first time each Pro-Only `feature` is used.
            </summary>
        </member>
        <member name="T:Animancer.Validate.Value">
            <summary>A rule that defines which values are valid.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/Value
        </member>
        <member name="F:Animancer.Validate.Value.Any">
            <summary>Any value is allowed.</summary>
        </member>
        <member name="F:Animancer.Validate.Value.ZeroToOne">
            <summary>Only values between 0 (inclusive) and 1 (inclusive) are allowed.</summary>
        </member>
        <member name="F:Animancer.Validate.Value.IsNotNegative">
            <summary>Only 0 or positive values are allowed.</summary>
        </member>
        <member name="F:Animancer.Validate.Value.IsFinite">
            <summary>Infinity and NaN are not allowed.</summary>
        </member>
        <member name="F:Animancer.Validate.Value.IsFiniteOrNaN">
            <summary>Infinity is not allowed.</summary>
        </member>
        <member name="M:Animancer.Validate.ValueRule(System.Single@,Animancer.Validate.Value)">
            <summary>Enforces the `rule` on the `value`.</summary>
        </member>
        <member name="T:Animancer.SimpleTimer">
            <summary>A very simple timer system based on a <see cref="T:System.Diagnostics.Stopwatch"/>.</summary>
        </member>
        <member name="F:Animancer.SimpleTimer.Format3DP">
            <summary>The default <see cref="F:Animancer.SimpleTimer.format"/> contains 3 decimal places.</summary>
        </member>
        <member name="F:Animancer.SimpleTimer.Default">
            <summary>A default timer that hasn't been started.</summary>
        </member>
        <member name="F:Animancer.SimpleTimer.Stopwatch">
            <summary>The system used to track time.</summary>
        </member>
        <member name="F:Animancer.SimpleTimer.name">
            <summary>An optional prefix for <see cref="M:Animancer.SimpleTimer.ToString"/>.</summary>
        </member>
        <member name="F:Animancer.SimpleTimer.format">
            <summary>The string format to use for <see cref="M:Animancer.SimpleTimer.ToString"/>.</summary>
            <remarks>
            If <c>null</c>, ticks will be used directly.
            Otherwise, the ticks will be converted to seconds and this format will be used.
            </remarks>
        </member>
        <member name="F:Animancer.SimpleTimer.startTicks">
            <summary>The <see cref="P:System.Diagnostics.Stopwatch.ElapsedTicks"/> from when this timer was started.</summary>
            <remarks>If not started, this value will be <c>-1</c>.</remarks>
        </member>
        <member name="F:Animancer.SimpleTimer.totalTicks">
            <summary>The total number of ticks that have elapsed since the <see cref="F:Animancer.SimpleTimer.startTicks"/>.</summary>
            <remarks>This value is updated by <see cref="M:Animancer.SimpleTimer.Count"/>.</remarks>
        </member>
        <member name="P:Animancer.SimpleTimer.StartTimeSeconds">
            <summary>Converts the <see cref="F:Animancer.SimpleTimer.startTicks"/> to seconds.</summary>
        </member>
        <member name="P:Animancer.SimpleTimer.TotalTimeSeconds">
            <summary>Converts the <see cref="F:Animancer.SimpleTimer.totalTicks"/> to seconds.</summary>
        </member>
        <member name="P:Animancer.SimpleTimer.IsStarted">
            <summary>Has <see cref="M:Animancer.SimpleTimer.Start"/> been called and <see cref="M:Animancer.SimpleTimer.Count"/> not?</summary>
        </member>
        <member name="M:Animancer.SimpleTimer.#ctor(System.String,System.String)">
            <summary>Creates a new <see cref="T:Animancer.SimpleTimer"/> with the specified `name`.</summary>
            <remarks>
            You will need to call <see cref="M:Animancer.SimpleTimer.Start"/> to start the timer.
            Or use the static <see cref="M:Animancer.SimpleTimer.Start(System.String,System.String)"/>.
            <para></para>
            Use <c>null</c> as the `format` to have <see cref="M:Animancer.SimpleTimer.Format(System.Int64)"/> return the ticks instead of seconds.
            </remarks>
        </member>
        <member name="M:Animancer.SimpleTimer.Start(System.String,System.String)">
            <summary>Creates a new <see cref="T:Animancer.SimpleTimer"/> with the specified `name` and starts it.</summary>
            <remarks>Use <c>null</c> as the `format` to have <see cref="M:Animancer.SimpleTimer.Format(System.Int64)"/> return the ticks instead of seconds.</remarks>
        </member>
        <member name="M:Animancer.SimpleTimer.Start">
            <summary>
            Stores the <see cref="P:System.Diagnostics.Stopwatch.ElapsedTicks"/> in <see cref="F:Animancer.SimpleTimer.startTicks"/>
            so that <see cref="M:Animancer.SimpleTimer.Count"/> will be able to calculate how much time has passed.
            </summary>
        </member>
        <member name="M:Animancer.SimpleTimer.Cancel">
            <summary>Clears the <see cref="F:Animancer.SimpleTimer.startTicks"/>.</summary>
        </member>
        <member name="M:Animancer.SimpleTimer.Count">
            <summary>
            Calculates the amount of time that has passed since the <see cref="F:Animancer.SimpleTimer.startTicks"/>
            and returns it after adding it to the <see cref="F:Animancer.SimpleTimer.totalTicks"/>.
            Also resumes this timer.
            </summary>
            <remarks>Returns -1 if this timer wasn't started.</remarks>
        </member>
        <member name="M:Animancer.SimpleTimer.ToString">
            <summary>Calls <see cref="M:Animancer.SimpleTimer.Count"/> and returns a string describing the current values of this timer.</summary>
        </member>
        <member name="M:Animancer.SimpleTimer.Format(System.Int64)">
            <summary>Converts the given `ticks` to a string using the <see cref="F:Animancer.SimpleTimer.format"/>.</summary>
        </member>
        <member name="M:Animancer.SimpleTimer.Dispose">
            <summary>Logs <see cref="M:Animancer.SimpleTimer.ToString"/> and calls <see cref="M:Animancer.SimpleTimer.Cancel"/>.</summary>
        </member>
        <member name="T:Animancer.Strings">
            <summary>Various string constants used throughout <see cref="N:Animancer"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/Strings
            
        </member>
        <member name="F:Animancer.Strings.ProductName">
            <summary>The name of this product.</summary>
        </member>
        <member name="F:Animancer.Strings.MenuPrefix">
            <summary>The standard prefix for <see cref="T:UnityEngine.AddComponentMenu"/>.</summary>
        </member>
        <member name="F:Animancer.Strings.CreateMenuPrefix">
            <summary>The standard prefix for the asset creation menu (for <see cref="T:UnityEditor.MenuItem"/>).</summary>
        </member>
        <member name="F:Animancer.Strings.SamplesMenuPrefix">
            <summary>The standard prefix for <see cref="T:UnityEngine.AddComponentMenu"/> for the samples.</summary>
        </member>
        <member name="F:Animancer.Strings.AnimancerToolsMenuPath">
            <summary>The menu path of the <see cref="T:Animancer.Editor.Tools.AnimancerToolsWindow"/>.</summary>
        </member>
        <member name="F:Animancer.Strings.AnimancerSettingsPath">
            <summary>The menu path of the Animancer settings.</summary>
        </member>
        <member name="F:Animancer.Strings.AssetMenuOrder">
            <summary>
            The base value for <see cref="P:UnityEngine.CreateAssetMenuAttribute.order"/> to group
            "Assets/Create/Animancer/..." menu items just under "Avatar Mask".
            </summary>
        </member>
        <member name="F:Animancer.Strings.UnityEditor">
            <summary>The conditional compilation symbol for Editor-Only code.</summary>
        </member>
        <member name="F:Animancer.Strings.Assertions">
            <summary>The conditional compilation symbol for assertions exists in the Unity Editor and Development Builds.</summary>
        </member>
        <member name="F:Animancer.Strings.Indent">
            <summary>4 spaces for indentation.</summary>
        </member>
        <member name="F:Animancer.Strings.ProOnlyTag">
            <summary>A prefix for tooltips on Pro-Only features.</summary>
            <remarks><c>"[Pro-Only] "</c> in Animancer Lite or <c>""</c> in Animancer Pro.</remarks>
        </member>
        <member name="F:Animancer.Strings.NoRename">
            <summary>[Internal] [Lite-Only]
            Disables member renaming in a [<see cref="T:System.Reflection.ObfuscationAttribute"/>].
            </summary>
        </member>
        <member name="F:Animancer.Strings.LiteAssemblyName">
            <summary>The Assembly name of the pre-compiled Animancer Lite DLL.</summary>
        </member>
        <member name="F:Animancer.Strings.MustBeFinite">
            <summary>An error message for when <see cref="M:Animancer.AnimancerUtilities.IsFinite(System.Single)"/> fails.</summary>
        </member>
        <member name="F:Animancer.Strings.AnimatorDisabledMessage">
            <summary>[Assert-Only] A message for <see cref="F:Animancer.OptionalWarning.AnimatorDisabled"/>.</summary>
        </member>
        <member name="T:Animancer.Strings.DocsURLs">
            <summary>URLs of various documentation pages.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/DocsURLs
            
        </member>
        <member name="F:Animancer.Strings.DocsURLs.Documentation">
            <summary>The URL of the website where the Animancer documentation is hosted.</summary>
        </member>
        <member name="F:Animancer.Strings.DocsURLs.APIDocumentation">
            <summary>The URL of the website where the Animancer API documentation is hosted.</summary>
        </member>
        <member name="F:Animancer.Strings.DocsURLs.DeveloperEmail">
            <summary>The email address which handles support for Animancer.</summary>
        </member>
        <member name="F:Animancer.Strings.DocsURLs.LatestVersion">
            <summary>The URL of the file which lists Animancer's latest version.</summary>
        </member>
        <member name="T:Animancer.Strings.Tooltips">
            <summary>Tooltips for various fields.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/Tooltips
            
        </member>
        <member name="T:Animancer.IAnimancerComponent">
            <summary>Interface for components that manage an <see cref="T:Animancer.AnimancerGraph"/>.</summary>
            <remarks>
            Despite the name, this interface is not necessarily limited to only <see cref="T:UnityEngine.Component"/>s.
            <para></para>
            This interface allows Animancer Lite to reference an <see cref="!:AnimancerComponent"/> inside the pre-compiled
            DLL while allowing that component to remain outside as a regular script. Otherwise everything would need to be
            in the DLL which would cause Unity to lose all the script references when upgrading from Animancer Lite to Pro.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/playing/component-types">
            Component Types</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/IAnimancerComponent
            
        </member>
        <member name="P:Animancer.IAnimancerComponent.enabled">
            <summary>Will this component be updated?</summary>
        </member>
        <member name="P:Animancer.IAnimancerComponent.gameObject">
            <summary>The <see cref="T:UnityEngine.GameObject"/> this component is attached to.</summary>
        </member>
        <member name="P:Animancer.IAnimancerComponent.Animator">
            <summary>The <see cref="T:UnityEngine.Animator"/> component which this script controls.</summary>
        </member>
        <member name="P:Animancer.IAnimancerComponent.Graph">
            <summary>The internal system which manages the playing animations.</summary>
        </member>
        <member name="P:Animancer.IAnimancerComponent.IsGraphInitialized">
            <summary>Has the <see cref="P:Animancer.IAnimancerComponent.Graph"/> been initialized?</summary>
        </member>
        <member name="P:Animancer.IAnimancerComponent.ResetOnDisable">
            <summary>Will the object be reset to its original values when disabled?</summary>
        </member>
        <member name="P:Animancer.IAnimancerComponent.UpdateMode">
            <summary>
            Determines when animations are updated and which time source is used. This property is mainly a wrapper
            around the <see cref="P:UnityEngine.Animator.updateMode"/>.
            </summary>
        </member>
        <member name="M:Animancer.IAnimancerComponent.GetKey(UnityEngine.AnimationClip)">
            <summary>Returns the dictionary key to use for the `clip`.</summary>
        </member>
        <member name="P:Animancer.IAnimancerComponent.AnimatorFieldName">
            <summary>[Editor-Only] The name of the serialized backing field for the <see cref="P:Animancer.IAnimancerComponent.Animator"/> property.</summary>
        </member>
        <member name="P:Animancer.IAnimancerComponent.ActionOnDisableFieldName">
            <summary>[Editor-Only]
            The name of the serialized backing field for the <see cref="!:AnimancerComponent.ActionOnDisable"/> property.
            </summary>
        </member>
        <member name="P:Animancer.IAnimancerComponent.InitialUpdateMode">
            <summary>[Editor-Only] The <see cref="P:Animancer.IAnimancerComponent.UpdateMode"/> that was first used when this script initialized.</summary>
            <remarks>
            This is used to give a warning when changing to or from <see cref="F:UnityEngine.AnimatorUpdateMode.AnimatePhysics"/> at
            runtime since it won't work correctly.
            </remarks>
        </member>
        <member name="T:Animancer.IAnimationClipCollection">
            <summary>
            A variant of <see cref="T:UnityEngine.IAnimationClipSource"/> which uses a <see cref="T:System.Collections.Generic.ICollection`1"/> instead of a
            <see cref="T:System.Collections.Generic.List`1"/> so that it can take a <see cref="T:System.Collections.Generic.HashSet`1"/> to efficiently avoid adding duplicates.
            <see cref="T:Animancer.AnimancerUtilities"/> contains various extension methods for this purpose.
            </summary>
            <remarks>
            <see cref="T:UnityEngine.IAnimationClipSource"/> still needs to be the main point of entry for the Animation Window, so this
            interface is only used internally.
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/IAnimationClipCollection
            
        </member>
        <member name="M:Animancer.IAnimationClipCollection.GatherAnimationClips(System.Collections.Generic.ICollection{UnityEngine.AnimationClip})">
            <summary>Adds all the animations associated with this object to the `clips`.</summary>
        </member>
        <member name="T:Animancer.ICharacterRoot">
            <summary>
            Interface for components to indicate which <see cref="T:UnityEngine.GameObject"/> is the root of a character when
            <see cref="M:Animancer.AnimancerUtilities.FindRoot(UnityEngine.GameObject)"/> is called.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer/ICharacterRoot
            
        </member>
        <member name="P:Animancer.ICharacterRoot.transform">
             <summary>
             The <see cref="T:UnityEngine.Transform"/> to search for <see cref="T:UnityEngine.AnimationClip"/>s beneath.
             </summary>
            
             <remarks>
             <strong>Example:</strong>
             Implementing this interface in a <see cref="T:UnityEngine.MonoBehaviour"/>
             will automatically inherit this property so you don't need to do anything else:
             <para></para><code>
             public class MyComponent : MonoBehaviour, ICharacterRoot
             {
             }
             </code>
             But if you want to have your script point to a different object as the root,
             you can explicitly implement this property:
             <para></para><code>
             public class MyComponent : MonoBehaviour, ICharacterRoot
             {
                 Transform ICharacterRoot.transform => ???;
             }
             </code></remarks>
        </member>
        <member name="T:Animancer.ICloneable`1">
            <summary>An object that can be cloned.</summary>
            <remarks>See <see cref="M:Animancer.ICloneable`1.Clone(Animancer.CloneContext)"/> for example usage.</remarks>
            https://kybernetik.com.au/animancer/api/Animancer/ICloneable_1
        </member>
        <member name="M:Animancer.ICloneable`1.Clone(Animancer.CloneContext)">
            <summary>Creates a new object with the same type and values this.</summary>
            
            <remarks>
            Calling this method directly is not generally recommended.
            Use <see cref="M:Animancer.CloneableExtensions.Clone``1(Animancer.ICloneable{``0})"/> if you don't have a `context`
            or <see cref="M:Animancer.CloneContext.GetOrCreateClone``1(Animancer.ICloneable{``0})"/> if you do have one.
            <para></para>
            <strong>Example:</strong><code>
            class BaseClass : ICloneable
            {
                // Explicit implementation so that the recommended methods will be used instead.
                object ICloneable.Clone(CloneContext context)
                {
                    var clone = (BaseClass)MemberwiseClone();
                    clone.CopyFrom(this, context);
                    return clone;
                }
                
                // Protected method which should only be called by Clone.
                protected virtual void InitializeClone(CloneContext context)
                {
                    // Alter any necessary BaseClass fields according to the context.
                }
            }
            
            class DerivedClass : BaseClass
            {
                protected override void InitializeClone(CloneContext context)
                {
                    base.CopyFrom(copyFrom, context);
                    
                    var derived = (DerivedClass)copyFrom;
                    // Alter any necessary DerivedClass fields according to the context.
                }
            }
            </code></remarks>
        </member>
        <member name="T:Animancer.CloneableExtensions">
            <summary>Extension methods for <see cref="T:Animancer.ICloneable`1"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/CloneableExtensions
        </member>
        <member name="M:Animancer.CloneableExtensions.Clone``1(Animancer.ICloneable{``0})">
            <summary>
            Calls <see cref="M:Animancer.ICloneable`1.Clone(Animancer.CloneContext)"/> using a <see cref="T:Animancer.CloneContext"/> from the
            <see cref="T:Animancer.CloneContext.Pool"/> and casts the result.
            </summary>
            <remarks>
            Returns <c>null</c> if the `original` is <c>null</c>.
            <para></para>
            Use <see cref="M:Animancer.CloneContext.GetOrCreateClone``1(Animancer.ICloneable{``0})"/>
            if you already have a <see cref="T:Animancer.CloneContext"/>.
            </remarks>
        </member>
        <member name="M:Animancer.CloneableExtensions.AssertCloneType``1(Animancer.ICloneable{``0},System.Object)">
            <summary>[Assert-Conditional] Asserts that the `clone` has the same type as the `original`.</summary>
        </member>
        <member name="T:Animancer.CloneContext">
            <summary>A dictionary which maps objects to their copies.</summary>
            <remarks>
            This class is used to clone complex object trees with potentially interconnected references so that
            references to original objects can be replaced with references to their equivalent clones.
            </remarks>
        </member>
        <member name="P:Animancer.CloneContext.WillCloneUpdatables">
            <summary>Will the <see cref="T:Animancer.IUpdatable"/>s be cloned as part of the current operation?</summary>
            <remarks>
            This is used to prevent <see cref="T:Animancer.AnimancerNode"/>s from cloning their <see cref="T:Animancer.FadeGroup"/>s
            individually while cloning a whole <see cref="T:Animancer.AnimancerGraph"/> because it will clone the whole groups
            after cloning all the nodes.
            </remarks>
        </member>
        <member name="T:Animancer.CloneContext.Pool">
            <summary>An <see cref="T:Animancer.ObjectPool`1"/> for <see cref="T:Animancer.CloneContext"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/Pool
        </member>
        <member name="F:Animancer.CloneContext.Pool.Instance">
            <summary>Singleton.</summary>
        </member>
        <member name="M:Animancer.CloneContext.Pool.New">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.CloneContext.Pool.Acquire">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.CloneContext.Pool.Release(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.CloneContext.GetOrCreateClone``1(Animancer.ICloneable{``0})">
            <summary>
            Returns the value registered using `original` as its key if there is one.
            Otherwise, calls <see cref="M:Animancer.CloneableExtensions.Clone``1(Animancer.ICloneable{``0})"/>, adds the clone to this dictionary, and returns it.
            </summary>
        </member>
        <member name="M:Animancer.CloneContext.GetOrCreateCloneOrOriginal``1(``0)">
            <summary>
            Returns the value registered using `original` as its key if there is one.
            Otherwise, if the `original` is <see cref="T:Animancer.ICloneable`1"/> it calls <see cref="M:Animancer.CloneableExtensions.Clone``1(Animancer.ICloneable{``0})"/>,
            adds the clone to this dictionary, and returns it.
            Otherwise, just returns the `original`.
            </summary>
            <remarks>
            If <typeparamref name="T"/> is <see cref="T:Animancer.ICloneable`1"/>,
            use <see cref="M:Animancer.CloneContext.GetOrCreateClone``1(Animancer.ICloneable{``0})"/> instead.
            </remarks>
        </member>
        <member name="M:Animancer.CloneContext.TryGetOrCreateCloneOrOriginal``1(``0,``0@)">
            <summary>
            Returns <c>true</c> if there is a `clone` registered for the `original`.
            Otherwise, if the `original` is <see cref="T:Animancer.ICloneable`1"/> it calls <see cref="M:Animancer.CloneableExtensions.Clone``1(Animancer.ICloneable{``0})"/>,
            adds the `clone` to this dictionary, and returns <c>true</c>.
            Otherwise, outputs the `original` as the `clone` and returns <c>false</c>.
            </summary>
            <remarks>Outputs <c>null</c> and returns <c>true</c> if the `original` is <c>null</c>.</remarks>
        </member>
        <member name="M:Animancer.CloneContext.Clone``1(Animancer.ICloneable{``0})">
            <summary>Calls <see cref="M:Animancer.ICloneable`1.Clone(Animancer.CloneContext)"/> and registers the clone.</summary>
            <exception cref="T:System.ArgumentException">A clone is already registered for the `original`.</exception>
        </member>
        <member name="M:Animancer.CloneContext.GetClone``1(``0)">
            <summary>Returns the clone of the `original` if one was registered. Otherwise, throws.</summary>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">No clone of the `original` is registered.</exception>
        </member>
        <member name="M:Animancer.CloneContext.GetCloneOrOriginal``1(``0)">
            <summary>Returns the clone of the `original` if one is registered. Otherwise, returns the `original`.</summary>
        </member>
        <member name="M:Animancer.CloneContext.TryGetClone``1(``0@)">
            <summary>Replaces the `item` with its clone and returns true if one is registered.</summary>
        </member>
        <member name="M:Animancer.CloneContext.TryGetClone``1(``0,``0@)">
            <summary>Calls <see cref="M:System.Collections.Generic.Dictionary`2.TryGetValue(`0,`1@)"/> and casts the result.</summary>
        </member>
        <member name="T:Animancer.IConvertable`1">
            <summary>An object which can be converted to another type.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/IConvertable_1
        </member>
        <member name="M:Animancer.IConvertable`1.Convert">
            <summary>Returns the equivalent of this object as <typeparamref name="T"/>.</summary>
        </member>
        <member name="T:Animancer.ConvertableUtilities">
            <summary>Utility methods for <see cref="T:Animancer.IConvertable`1"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ConvertableUtilities
        </member>
        <member name="M:Animancer.ConvertableUtilities.ConvertOrThrow``1(System.Object)">
            <summary>Tries to convert the `original` to <typeparamref name="T"/>.</summary>
            <remarks>
            <list type="bullet">
            <item>If the `original` is already a <typeparamref name="T"/> then it's returned directly.</item>
            <item>Or if it's an <see cref="T:Animancer.IConvertable`1"/> then <see cref="M:Animancer.IConvertable`1.Convert"/> is used.</item>
            <item>Otherwise, this method throws an <see cref="T:System.ArgumentException"/>.</item>
            </list>
            </remarks>
        </member>
        <member name="M:Animancer.ConvertableUtilities.ConvertOrDefault``1(System.Object)">
            <summary>Tries to convert the `original` to <typeparamref name="T"/>.</summary>
            <remarks>
            <list type="bullet">
            <item>If the `original` is already a <typeparamref name="T"/> then it's returned directly.</item>
            <item>Or if it's an <see cref="T:Animancer.IConvertable`1"/> then <see cref="M:Animancer.IConvertable`1.Convert"/> is used.</item>
            <item>Otherwise, this method returns the <c>default(T)</c>.</item>
            </list>
            </remarks>
        </member>
        <member name="M:Animancer.ConvertableUtilities.TryConvert``1(System.Object,``0@)">
            <summary>Tries to convert the `original` to <typeparamref name="T"/>.</summary>
            <remarks>
            <list type="bullet">
            <item>If the `original` is already a <typeparamref name="T"/> then it's returned directly.</item>
            <item>Or if it's an <see cref="T:Animancer.IConvertable`1"/> then <see cref="M:Animancer.IConvertable`1.Convert"/> is used.</item>
            <item>Otherwise, this method returns <c>false</c>.</item>
            </list>
            </remarks>
        </member>
        <member name="T:Animancer.ICopyable`1">
            <summary>An object that can be copied.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ICopyable_1
        </member>
        <member name="M:Animancer.ICopyable`1.CopyFrom(`0,Animancer.CloneContext)">
            <summary>Copies the contents of `copyFrom` into this object, replacing its previous contents.</summary>
        </member>
        <member name="T:Animancer.CopyableExtensions">
            <summary>Extension methods for <see cref="T:Animancer.ICopyable`1"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/CopyableExtensions
        </member>
        <member name="M:Animancer.CopyableExtensions.CopyFrom``1(``0,``0)">
            <summary>
            Calls <see cref="M:Animancer.ICopyable`1.CopyFrom(`0,Animancer.CloneContext)"/>
            using a <see cref="T:Animancer.CloneContext"/> from the <see cref="T:Animancer.CloneContext.Pool"/>.
            </summary>
        </member>
        <member name="M:Animancer.CopyableExtensions.CopyableClone``1(``0,Animancer.CloneContext)">
            <summary>
            Creates a new <typeparamref name="T"/> and calls <see cref="M:Animancer.ICopyable`1.CopyFrom(`0,Animancer.CloneContext)"/>.
            </summary>
        </member>
        <member name="M:Animancer.CopyableExtensions.CopyableClone``1(``0)">
            <summary>
            Creates a new <typeparamref name="T"/> and calls <see cref="M:Animancer.ICopyable`1.CopyFrom(`0,Animancer.CloneContext)"/>
            using a <see cref="T:Animancer.CloneContext"/> from the <see cref="T:Animancer.CloneContext.Pool"/>.
            </summary>
        </member>
        <member name="M:Animancer.CopyableExtensions.CopyFromBase``2(``0,``1,Animancer.CloneContext)">
            <summary>Calls <see cref="M:Animancer.ICopyable`1.CopyFrom(`0,Animancer.CloneContext)"/> using the appropriate type.</summary>
        </member>
        <member name="T:Animancer.IHasDescription">
            <summary>An object which can give a detailed description of itself.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/IHasDescription
            
        </member>
        <member name="M:Animancer.IHasDescription.AppendDescription(System.Text.StringBuilder,System.String)">
            <summary>Appends a detailed descrption of the current details of this object.</summary>
            <remarks>
            <see cref="M:Animancer.AnimancerUtilities.GetDescription(Animancer.IHasDescription,System.String)"/> calls this method with a pooled
            <see cref="T:System.Text.StringBuilder"/>.
            </remarks>
        </member>
        <member name="T:Animancer.IHasEvents">
            <summary>An object which has an <see cref="T:Animancer.AnimancerEvent.Sequence.Serializable"/>.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/events/animancer">
            Animancer Events</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/IHasEvents
        </member>
        <member name="P:Animancer.IHasEvents.Events">
            <summary>Events which will be triggered as the animation plays.</summary>
        </member>
        <member name="P:Animancer.IHasEvents.SerializedEvents">
            <summary>Events which will be triggered as the animation plays.</summary>
        </member>
        <member name="T:Animancer.ITransitionWithEvents">
            <summary>A combination of <see cref="T:Animancer.ITransition"/> and <see cref="T:Animancer.IHasEvents"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/ITransitionWithEvents
        </member>
        <member name="T:Animancer.IHasKey">
            <summary>
            An object with a <see cref="P:Animancer.IHasKey.Key"/> which can be used in dictionaries and hash sets.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/playing/keys">
            Keys</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/IHasKey
        </member>
        <member name="P:Animancer.IHasKey.Key">
            <summary>A key which can be used in dictionaries and hash sets.</summary>
        </member>
        <member name="T:Animancer.IInitializable`1">
            <summary>An object with an <see cref="M:Animancer.IInitializable`1.Initialize(`0)"/> method.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/IInitializable_1
        </member>
        <member name="M:Animancer.IInitializable`1.Initialize(`0)">
            <summary>Initializes this object.</summary>
        </member>
        <member name="T:Animancer.IInvokable">
            <summary>An object with an <see cref="M:Animancer.IInvokable.Invoke"/> method.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/IInvokable
        </member>
        <member name="M:Animancer.IInvokable.Invoke">
            <summary>Executes the main function of this object.</summary>
        </member>
        <member name="T:Animancer.IMotion">
            <summary>An object with an <see cref="P:Animancer.IMotion.AverageAngularSpeed"/> and <see cref="P:Animancer.IMotion.AverageVelocity"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/IMotion
            
        </member>
        <member name="P:Animancer.IMotion.AverageAngularSpeed">
            <summary>The initial <see cref="P:UnityEngine.Motion.averageAngularSpeed"/> that the created state will have.</summary>
            <remarks>The actual average can vary in states like <see cref="T:Animancer.ManualMixerState"/>.</remarks>
        </member>
        <member name="P:Animancer.IMotion.AverageVelocity">
            <summary>The initial <see cref="P:UnityEngine.Motion.averageSpeed"/> that the created state will have.</summary>
            <remarks>The actual average can vary in states like <see cref="T:Animancer.ManualMixerState"/>.</remarks>
        </member>
        <member name="T:Animancer.IParameter">
            <summary>A value wrapper with utilities for being drawn in the Inspector.</summary>
            <remarks>This interface is used for non-generic access to <see cref="T:Animancer.Parameter`1"/>.</remarks>
        </member>
        <member name="P:Animancer.IParameter.Key">
            <summary>The key this parameter is registered with in the <see cref="T:Animancer.ParameterDictionary"/>.</summary>
        </member>
        <member name="P:Animancer.IParameter.Value">
            <summary>The current value of this parameter.</summary>
        </member>
        <member name="P:Animancer.IParameter.ValueType">
            <summary>The type of the <see cref="P:Animancer.IParameter.Value"/>.</summary>
        </member>
        <member name="M:Animancer.IParameter.GetOnValueChanged">
            <summary>Returns a delegate that will be invoked when the <see cref="P:Animancer.IParameter.Value"/> changes.</summary>
            <remarks>This is used for displaying the parameter details in the Inspector.</remarks>
        </member>
        <member name="P:Animancer.IParameter.LogContext">
            <summary>[Assert-Only] If set, all interactions with this parameter will be logged with this prefix.</summary>
            <remarks>
            If a <see cref="T:UnityEngine.Object"/> is assigned, it will also be used as the context for the logs,
            meaning you can click the messages in the Console window to highlight that object in the Hierarchy.
            <para></para>
            Logs will also include the parameter's key so you can assign <c>""</c> if you don't need to differentiate
            between different objects which use the same name.
            </remarks>
        </member>
        <member name="P:Animancer.IParameter.InspectorControlOnly">
            <summary>[Assert-Only]
            If true, attempts to set the <see cref="P:Animancer.IParameter.Value"/> in code will be ignored so this parameter can only be
            controlled manually in the Inspector.
            </summary>
        </member>
        <member name="T:Animancer.IParametizedState">
            <summary>An object with various parameters.</summary>
            <remarks>This system is inefficient and intended for Editor-Only use.</remarks>
            https://kybernetik.com.au/animancer/api/Animancer/IParametizedState
        </member>
        <member name="M:Animancer.IParametizedState.GetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <summary>Gets the details of all parameters in this state.</summary>
        </member>
        <member name="M:Animancer.IParametizedState.SetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <summary>Sets the details of all parameters in this state.</summary>
        </member>
        <member name="T:Animancer.StateParameterDetails">
            <summary>Details of a parameter in an <see cref="T:Animancer.IParametizedState"/>.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/StateParameterDetails
        </member>
        <member name="F:Animancer.StateParameterDetails.label">
            <summary>The display name.</summary>
        </member>
        <member name="F:Animancer.StateParameterDetails.name">
            <summary>The <see cref="P:Animancer.AnimancerGraph.Parameters"/> binding name.</summary>
        </member>
        <member name="F:Animancer.StateParameterDetails.type">
            <summary>The type of parameter.</summary>
        </member>
        <member name="F:Animancer.StateParameterDetails.value">
            <summary>The current value of the parameter.</summary>
        </member>
        <member name="F:Animancer.StateParameterDetails.NoBinding">
            <summary>A special value for <see cref="F:Animancer.StateParameterDetails.name"/> which indicates that binding is not supported.</summary>
        </member>
        <member name="P:Animancer.StateParameterDetails.SupportsBinding">
            <summary>Does the parameter support binding?</summary>
        </member>
        <member name="M:Animancer.StateParameterDetails.#ctor(System.String,System.String,UnityEngine.AnimatorControllerParameterType,System.Object)">
            <summary>Creates a new <see cref="T:Animancer.StateParameterDetails"/>.</summary>
        </member>
        <member name="M:Animancer.StateParameterDetails.#ctor(System.String,UnityEngine.AnimatorControllerParameterType,System.Object)">
            <summary>Creates a new <see cref="T:Animancer.StateParameterDetails"/>.</summary>
        </member>
        <member name="T:Animancer.IPolymorphic">
            <summary>
            An object that will be drawn by a <see cref="T:Animancer.Editor.PolymorphicDrawer"/>
            which allows the user to select its type in the Inspector.
            </summary>
            <remarks>
            Implement this interface in a <see cref="T:UnityEditor.PropertyDrawer"/> to indicate that it
            should entirely replace the <see cref="T:Animancer.Editor.PolymorphicDrawer"/>.
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/IPolymorphic
        </member>
        <member name="T:Animancer.IPolymorphicReset">
            <summary>An <see cref="T:Animancer.IPolymorphic"/> with a <see cref="M:Animancer.IPolymorphicReset.Reset(System.Object)"/> method.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/IPolymorphicReset
        </member>
        <member name="M:Animancer.IPolymorphicReset.Reset(System.Object)">
            <summary>Called when an instance of this type is created in a [<see cref="T:UnityEngine.SerializeReference"/>] field.</summary>
        </member>
        <member name="T:Animancer.PolymorphicAttribute">
            <summary>
            The attributed field will be drawn by a <see cref="T:Animancer.Editor.PolymorphicDrawer"/>
            which allows the user to select its type in the Inspector.
            </summary>
            https://kybernetik.com.au/animancer/api/Animancer/PolymorphicAttribute
        </member>
        <member name="T:Animancer.ITransition">
            <summary>An object which can create an <see cref="T:Animancer.AnimancerState"/> and set its details.</summary>
            <remarks>
            Transitions are generally used as arguments for <see cref="M:Animancer.AnimancerLayer.Play(Animancer.ITransition)"/>.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions">
            Transitions</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/ITransition
        </member>
        <member name="P:Animancer.ITransition.FadeDuration">
            <summary>The amount of time this transition should take (in seconds).</summary>
        </member>
        <member name="P:Animancer.ITransition.FadeMode">
            <summary>
            The <see cref="T:Animancer.FadeMode"/> which should be used when this transition is passed into
            <see cref="M:Animancer.AnimancerLayer.Play(Animancer.ITransition)"/>.
            </summary>
        </member>
        <member name="M:Animancer.ITransition.CreateState">
            <summary>Creates and returns a new <see cref="T:Animancer.AnimancerState"/> defuned by this transition.</summary>
            <remarks>
            The first time a transition is used on an object, this method creates a state
            which is registered in the internal dictionary using the <see cref="P:Animancer.IHasKey.Key"/>
            so that it can be reused later on.
            <para></para>
            Methods like <see cref="M:Animancer.AnimancerLayer.Play(Animancer.ITransition)"/> will also call <see cref="M:Animancer.ITransition.Apply(Animancer.AnimancerState)"/>,
            so if you call this method manually you may want to call that method as well.
            Or you can just use <see cref="M:Animancer.AnimancerUtilities.CreateStateAndApply(Animancer.ITransition,Animancer.AnimancerGraph)"/>.
            </remarks>
        </member>
        <member name="M:Animancer.ITransition.Apply(Animancer.AnimancerState)">
            <summary>Applies the details of this transition to the `state`.</summary>
            <remarks>This method is called by every <see cref="M:Animancer.AnimancerLayer.Play(Animancer.ITransition)"/>.</remarks>
        </member>
        <member name="T:Animancer.ITransition`1">
            <summary>An <see cref="T:Animancer.ITransition"/> which creates a specific type of <see cref="T:Animancer.AnimancerState"/>.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions">
            Transitions</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/ITransition_1
        </member>
        <member name="P:Animancer.ITransition`1.State">
            <summary>
            The state that was created by this object. Specifically, this is the state that was most recently
            passed into <see cref="M:Animancer.ITransition.Apply(Animancer.AnimancerState)"/> (usually by <see cref="M:Animancer.AnimancerLayer.Play(Animancer.ITransition)"/>).
            </summary>
        </member>
        <member name="M:Animancer.ITransition`1.CreateState">
            <summary>Creates and returns a new <typeparamref name="TState"/>.</summary>
        </member>
        <member name="T:Animancer.ITransitionDetailed">
            <summary>An <see cref="T:Animancer.ITransition"/> with some additional details (mainly for the Unity Editor GUI).</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions">
            Transitions</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/ITransitionDetailed
            
        </member>
        <member name="P:Animancer.ITransitionDetailed.IsValid">
            <summary>Can this transition create a valid <see cref="T:Animancer.AnimancerState"/>?</summary>
        </member>
        <member name="P:Animancer.ITransitionDetailed.IsLooping">
            <summary>What will the value of <see cref="P:Animancer.AnimancerState.IsLooping"/> be for the created state?</summary>
        </member>
        <member name="P:Animancer.ITransitionDetailed.NormalizedStartTime">
            <summary>The <see cref="P:Animancer.AnimancerState.NormalizedTime"/> to start the animation at.</summary>
            <remarks><see cref="F:System.Single.NaN"/> allows the animation to continue from its current time.</remarks>
        </member>
        <member name="P:Animancer.ITransitionDetailed.MaximumDuration">
            <summary>The maximum amount of time the animation is expected to take (in seconds).</summary>
            <remarks>The actual duration can vary in states like <see cref="T:Animancer.ManualMixerState"/>.</remarks>
        </member>
        <member name="P:Animancer.ITransitionDetailed.Speed">
            <summary>The <see cref="P:Animancer.AnimancerNodeBase.Speed"/> to play the animation at.</summary>
        </member>
        <member name="T:Animancer.IUpdatable">
             <summary>[Pro-Only] An object that can be updated during Animancer's animation updates.</summary>
            
             <remarks>
             <strong>Example:</strong>
             Register to receive updates using <see cref="M:Animancer.AnimancerGraph.RequirePreUpdate(Animancer.IUpdatable)"/> or
             <see cref="M:Animancer.AnimancerGraph.RequirePostUpdate(Animancer.IUpdatable)"/> and stop
             receiving updates using <see cref="M:Animancer.AnimancerGraph.CancelPreUpdate(Animancer.IUpdatable)"/> or
             <see cref="M:Animancer.AnimancerGraph.CancelPostUpdate(Animancer.IUpdatable)"/>.
             <para></para><code>
             public sealed class MyUpdatable : IUpdatable
             {
                 // Implement IUpdatable.
                 // You can avoid this by inheriting from Updatable instead.
                 private int _Index = IUpdatable.List.NotInList;
                 ref int IUpdatable.ListIndex => ref _Index;
                 
                 private AnimancerComponent _Animancer;
            
                 public void StartUpdating(AnimancerComponent animancer)
                 {
                     _Animancer = animancer;
                     
                     // If you want Update to be called before the playables get updated.
                     _Animancer.Playable.RequirePreUpdate(this);
                     
                     // If you want Update to be called after the playables get updated.
                     _Animancer.Playable.RequirePostUpdate(this);
                 }
            
                 public void StopUpdating()
                 {
                     // If you used RequirePreUpdate.
                     _Animancer.Playable.CancelPreUpdate(this);
                     
                     // If you used RequirePostUpdate.
                     _Animancer.Playable.CancelPostUpdate(this);
                 }
            
                 void IUpdatable.Update()
                 {
                     // Called during every animation update.
                     
                     // AnimancerGraph.Current can be used to access the system it is being updated by.
                 }
             }
             </code></remarks>
             
             https://kybernetik.com.au/animancer/api/Animancer/IUpdatable
             
        </member>
        <member name="P:Animancer.IUpdatable.UpdatableIndex">
            <summary>The index of this object in its <see cref="T:Animancer.IndexedList`2"/>.</summary>
            <remarks>Should be initialized to -1 to indicate that this object is not yet in a list.</remarks>
        </member>
        <member name="M:Animancer.IUpdatable.Update">
            <summary>Updates this object.</summary>
        </member>
        <member name="T:Animancer.IUpdatable.Indexer">
            <summary>An <see cref="T:Animancer.IIndexer`1"/> for <see cref="T:Animancer.IUpdatable"/>.</summary>
        </member>
        <member name="M:Animancer.IUpdatable.Indexer.GetIndex(Animancer.IUpdatable)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.IUpdatable.Indexer.SetIndex(Animancer.IUpdatable,System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.IUpdatable.Indexer.ClearIndex(Animancer.IUpdatable)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.IUpdatable.List">
            <summary>An <see cref="T:Animancer.IndexedList`2"/> of <see cref="T:Animancer.IUpdatable"/>.</summary>
        </member>
        <member name="P:Animancer.IUpdatable.List.DefaultCapacity">
            <summary>The default <see cref="P:Animancer.IndexedList`2.Capacity"/> for newly created lists.</summary>
            <remarks>Default value is 4.</remarks>
        </member>
        <member name="M:Animancer.IUpdatable.List.#ctor">
            <summary>Creates a new <see cref="T:Animancer.IUpdatable.List"/> with the <see cref="P:Animancer.IUpdatable.List.DefaultCapacity"/>.</summary>
        </member>
        <member name="M:Animancer.IUpdatable.List.UpdateAll">
            <summary>Calls <see cref="M:Animancer.IUpdatable.Update"/> on all items in this list.</summary>
            <remarks>
            Uses <see cref="M:UnityEngine.Debug.LogException(System.Exception,UnityEngine.Object)"/> to handle exceptions and continues executing
            the remaining items if any occur.
            </remarks>
        </member>
        <member name="M:Animancer.IUpdatable.List.CloneFrom(Animancer.IUpdatable.List,Animancer.CloneContext)">
            <summary>Clones any <see cref="T:Animancer.ICloneable`1"/> items.</summary>
        </member>
        <member name="T:Animancer.IWrapper">
            <summary>An object which wraps a <see cref="P:Animancer.IWrapper.WrappedObject"/> object.</summary>
            https://kybernetik.com.au/animancer/api/Animancer/IWrapper
        </member>
        <member name="P:Animancer.IWrapper.WrappedObject">
            <summary>The wrapped object.</summary>
            <remarks>
            Use <see cref="M:Animancer.AnimancerUtilities.TryGetWrappedObject``1(System.Object,``0@,System.Boolean)"/>
            in case the <see cref="P:Animancer.IWrapper.WrappedObject"/> is also an <see cref="T:Animancer.IWrapper"/>.
            </remarks>
        </member>
        <member name="T:Animancer.CartesianMixerState">
            <summary>[Pro-Only]
            An <see cref="T:Animancer.AnimancerState"/> which blends an array of other states together based on a two dimensional
            parameter and thresholds using Gradient Band Interpolation.
            </summary>
            <remarks>
            This mixer type is similar to the 2D Freeform Cartesian Blend Type in Mecanim Blend Trees.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/blending/mixers">
            Mixers</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/CartesianMixerState
            
        </member>
        <member name="F:Animancer.CartesianMixerState._BlendFactors">
            <summary>Precalculated values to speed up the recalculation of weights.</summary>
        </member>
        <member name="F:Animancer.CartesianMixerState._BlendFactorsAreDirty">
            <summary>Indicates whether the <see cref="F:Animancer.CartesianMixerState._BlendFactors"/> need to be recalculated.</summary>
        </member>
        <member name="M:Animancer.CartesianMixerState.OnThresholdsChanged">
            <summary>
            Called whenever the thresholds are changed. Indicates that the internal blend factors need to be
            recalculated and triggers weight recalculation.
            </summary>
        </member>
        <member name="M:Animancer.CartesianMixerState.ForceRecalculateWeights">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.CartesianMixerState.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.CartesianMixerState.CopyFrom(Animancer.Vector2MixerState,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.CartesianMixerState.CopyFrom(Animancer.CartesianMixerState,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.DirectionalMixerState">
            <summary>[Pro-Only]
            An <see cref="T:Animancer.AnimancerState"/> which blends an array of other states together based on a two dimensional
            parameter and thresholds using Polar Gradient Band Interpolation.
            </summary>
            <remarks>
            This mixer type is similar to the 2D Freeform Directional Blend Type in Mecanim Blend Trees.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/blending/mixers">
            Mixers</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/DirectionalMixerState
            
        </member>
        <member name="F:Animancer.DirectionalMixerState._ThresholdMagnitudes">
            <summary>Precalculated magnitudes of all thresholds to speed up the recalculation of weights.</summary>
        </member>
        <member name="F:Animancer.DirectionalMixerState._BlendFactors">
            <summary>Precalculated values to speed up the recalculation of weights.</summary>
        </member>
        <member name="F:Animancer.DirectionalMixerState._BlendFactorsAreDirty">
            <summary>Indicates whether the <see cref="F:Animancer.DirectionalMixerState._BlendFactors"/> need to be recalculated.</summary>
        </member>
        <member name="F:Animancer.DirectionalMixerState.AngleFactor">
            <summary>The multiplier that controls how much an angle (in radians) is worth compared to normalized distance.</summary>
        </member>
        <member name="M:Animancer.DirectionalMixerState.OnThresholdsChanged">
            <summary>
            Called whenever the thresholds are changed. Indicates that the internal blend factors need to be
            recalculated and triggers weight recalculation.
            </summary>
        </member>
        <member name="M:Animancer.DirectionalMixerState.ForceRecalculateWeights">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.DirectionalMixerState.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.DirectionalMixerState.CopyFrom(Animancer.Vector2MixerState,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.DirectionalMixerState.CopyFrom(Animancer.DirectionalMixerState,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.LinearMixerState">
            <summary>[Pro-Only]
            An <see cref="T:Animancer.AnimancerState"/> which blends an array of other states together
            using linear interpolation between the specified thresholds.
            </summary>
            <remarks>
            This mixer type is similar to the 1D Blend Type in Mecanim Blend Trees.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/blending/mixers">
            Mixers</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/LinearMixerState
        </member>
        <member name="P:Animancer.LinearMixerState.ExtrapolateSpeed">
            <summary>
            Should setting the <see cref="P:Animancer.MixerState`1.Parameter"/> above the highest threshold
            increase the <see cref="P:Animancer.AnimancerNodeBase.Speed"/> of this mixer proportionally?
            </summary>
        </member>
        <member name="M:Animancer.LinearMixerState.GetParameterError(System.Single)">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.LinearMixerState.MinThreshold">
            <summary>The lowest threshold (which is for the first child because they must be sorted).</summary>
        </member>
        <member name="P:Animancer.LinearMixerState.MaxThreshold">
            <summary>The highest threshold (which is for the last child because they must be sorted).</summary>
        </member>
        <member name="P:Animancer.LinearMixerState.NormalizedParameter">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.LinearMixerState.ParameterName">
            <summary>
            If set, this will be used as a key in the <see cref="T:Animancer.ParameterDictionary"/> so any
            changes to that parameter will automatically set the <see cref="P:Animancer.MixerState`1.Parameter"/>.
            </summary>
        </member>
        <member name="M:Animancer.LinearMixerState.SetGraph(Animancer.AnimancerGraph)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.LinearMixerState.Destroy">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.LinearMixerState.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.LinearMixerState.CopyFrom(Animancer.MixerState{System.Single},Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.LinearMixerState.CopyFrom(Animancer.LinearMixerState,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.LinearMixerState.OnThresholdsChanged">
            <summary>
            Called whenever the thresholds are changed. Indicates that <see cref="M:Animancer.LinearMixerState.AssertThresholdsSorted"/> needs to
            be called by the next <see cref="M:Animancer.LinearMixerState.ForceRecalculateWeights"/> if <c>UNITY_ASSERTIONS</c> is defined, then
            calls <see cref="M:Animancer.MixerState`1.OnThresholdsChanged"/>.
            </summary>
        </member>
        <member name="M:Animancer.LinearMixerState.AssertThresholdsSorted">
            <summary>
            Throws an <see cref="T:System.ArgumentException"/> if the thresholds are not sorted from lowest to highest without
            any duplicates.
            </summary>
            <exception cref="T:System.ArgumentException"/>
            <exception cref="T:System.InvalidOperationException">The thresholds have not been initialized.</exception>
        </member>
        <member name="M:Animancer.LinearMixerState.ForceRecalculateWeights">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.LinearMixerState.AssignLinearThresholds(System.Single,System.Single)">
            <summary>
            Assigns the thresholds to be evenly spaced between the specified min and max (inclusive).
            </summary>
        </member>
        <member name="M:Animancer.LinearMixerState.AppendDetails(System.Text.StringBuilder,System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.LinearMixerState.GetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.LinearMixerState.SetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.ManualMixerState">
            <summary>[Pro-Only]
            An <see cref="T:Animancer.AnimancerState"/> which blends multiple child states
            by allowing you to control their <see cref="P:Animancer.AnimancerNode.Weight"/> manually.
            </summary>
            <remarks>
            This mixer type is similar to the Direct Blend Type in Mecanim Blend Trees.
            The official <see href="https://learn.unity.com/tutorial/5c5152bcedbc2a001fd5c696">Direct Blend Trees</see>
            tutorial explains their general concepts and purpose which apply to <see cref="T:Animancer.ManualMixerState"/>s as well.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/blending/mixers">
            Mixers</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/ManualMixerState
            
        </member>
        <member name="P:Animancer.ManualMixerState.ChildStates">
            <summary>The states connected to this mixer.</summary>
            <remarks>Only states up to the <see cref="P:Animancer.ManualMixerState.ChildCount"/> should be assigned.</remarks>
        </member>
        <member name="P:Animancer.ManualMixerState.ChildCount">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.ManualMixerState.ChildCapacity">
            <summary>The size of the internal array of <see cref="P:Animancer.ManualMixerState.ChildStates"/>.</summary>
            <remarks>This value starts at 0 then expands to <see cref="P:Animancer.ManualMixerState.ChildCapacity"/> when the first child is added.</remarks>
        </member>
        <member name="M:Animancer.ManualMixerState.OnChildCapacityChanged">
            <summary>Called when the <see cref="P:Animancer.ManualMixerState.ChildCapacity"/> is changed.</summary>
        </member>
        <member name="P:Animancer.ManualMixerState.DefaultChildCapacity">
            <summary><see cref="P:Animancer.ManualMixerState.ChildCapacity"/> starts at 0 then expands to this value when the first child is added.</summary>
            <remarks>Default 8.</remarks>
        </member>
        <member name="M:Animancer.ManualMixerState.EnsureRemainingChildCapacity(System.Int32)">
            <summary>
            Ensures that the remaining unused <see cref="P:Animancer.ManualMixerState.ChildCapacity"/>
            is greater than or equal to the specified `minimumCapacity`.
            </summary>
        </member>
        <member name="M:Animancer.ManualMixerState.GetChild(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.GetEnumerator">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.OnSetIsPlaying">
            <inheritdoc/>
        </member>
        <member name="F:Animancer.ManualMixerState._LoopingChildCount">
            <summary>If greater than 0 then <see cref="P:Animancer.ManualMixerState.IsLooping"/> is true.</summary>
        </member>
        <member name="P:Animancer.ManualMixerState.IsLooping">
            <summary>Are any child states looping?</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.AddIsLooping(System.Int32)">
            <summary>Sets <see cref="P:Animancer.ManualMixerState.IsLooping"/> and informs the <see cref="P:Animancer.AnimancerNodeBase.Parent"/>s.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.OnChildIsLoopingChanged(System.Boolean)">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.ManualMixerState.RawTime">
            <summary>The weighted average <see cref="P:Animancer.AnimancerState.Time"/> of each child state.</summary>
            <remarks>
            If there are any <see cref="P:Animancer.ManualMixerState.SynchronizedChildren"/>,
            only those states will be included in the getter calculation.
            </remarks>
        </member>
        <member name="M:Animancer.ManualMixerState.MoveTime(System.Double,System.Boolean)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.GetEventDispatchInfo(System.Single@,System.Single@,System.Boolean@)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.GetTimeDetails(System.Single@,System.Single@,System.Single@)">
            <summary>
            Gets the time details based on the synchronized child states if any are active,
            otherwise recalculates based on all child states.
            </summary>
        </member>
        <member name="M:Animancer.ManualMixerState.GetTimeDetails(System.Collections.Generic.IList{Animancer.AnimancerState},System.Int32,System.Single@,System.Single@,System.Single@)">
            <summary>Gets the time details based on the `states`.</summary>
        </member>
        <member name="P:Animancer.ManualMixerState.Length">
            <summary>The weighted average <see cref="P:Animancer.AnimancerState.Length"/> of each child state.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.#ctor">
            <summary>Creates a new <see cref="T:Animancer.ManualMixerState"/>.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.CreatePlayable(UnityEngine.Playables.Playable@)">
            <summary>Creates and assigns the <see cref="T:UnityEngine.Animations.AnimationMixerPlayable"/> managed by this state.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.OnAddChild(Animancer.AnimancerState)">
            <summary>Connects the `state` to this mixer at its <see cref="P:Animancer.AnimancerNode.Index"/>.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.OnRemoveChild(Animancer.AnimancerState)">
            <summary>Disconnects the `state` from this mixer at its <see cref="P:Animancer.AnimancerNode.Index"/>.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.Destroy">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.CopyFrom(Animancer.AnimancerState,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.CopyFrom(Animancer.ManualMixerState,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.Add(Animancer.AnimancerState)">
            <summary>Assigns the `state` as a child of this mixer.</summary>
            <remarks>This is the same as calling <see cref="M:Animancer.AnimancerState.SetParent(Animancer.AnimancerNode)"/>.</remarks>
        </member>
        <member name="M:Animancer.ManualMixerState.Add(UnityEngine.AnimationClip)">
            <summary>Creates and returns a new <see cref="T:Animancer.ClipState"/> to play the `clip` as a child of this mixer.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.Add(Animancer.ITransition)">
            <summary>Calls <see cref="M:Animancer.AnimancerUtilities.CreateStateAndApply(Animancer.ITransition,Animancer.AnimancerGraph)"/> then <see cref="M:Animancer.ManualMixerState.Add(Animancer.AnimancerState)"/>.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.Add(System.Object)">
            <summary>Calls one of the other <see cref="M:Animancer.ManualMixerState.Add(System.Object)"/> overloads as appropriate for the `child`.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.AddRange(System.Collections.Generic.IList{UnityEngine.AnimationClip})">
            <summary>Calls <see cref="M:Animancer.ManualMixerState.Add(UnityEngine.AnimationClip)"/> for each of the `clips`.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.AddRange(UnityEngine.AnimationClip[])">
            <summary>Calls <see cref="M:Animancer.ManualMixerState.Add(UnityEngine.AnimationClip)"/> for each of the `clips`.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.AddRange(System.Collections.Generic.IList{Animancer.ITransition})">
            <summary>Calls <see cref="M:Animancer.ManualMixerState.Add(Animancer.ITransition)"/> for each of the `transitions`.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.AddRange(Animancer.ITransition[])">
            <summary>Calls <see cref="M:Animancer.ManualMixerState.Add(Animancer.ITransition)"/> for each of the `transitions`.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.AddRange(System.Collections.Generic.IList{System.Object})">
            <summary>Calls <see cref="M:Animancer.ManualMixerState.Add(System.Object)"/> for each of the `children`.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.AddRange(System.Object[])">
            <summary>Calls <see cref="M:Animancer.ManualMixerState.Add(System.Object)"/> for each of the `children`.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.Remove(System.Int32,System.Boolean)">
            <summary>Removes the child at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.Remove(Animancer.AnimancerState,System.Boolean)">
            <summary>Removes the specified `child`.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.Set(System.Int32,Animancer.AnimancerState,System.Boolean)">
            <summary>Replaces the `child` at the specified `index`.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.Set(System.Int32,UnityEngine.AnimationClip,System.Boolean)">
            <summary>Replaces the child at the specified `index` with a new <see cref="T:Animancer.ClipState"/>.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.Set(System.Int32,Animancer.ITransition,System.Boolean)">
            <summary>Replaces the child at the specified `index` with a <see cref="M:Animancer.ITransition.CreateState"/>.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.Set(System.Int32,System.Object,System.Boolean)">
            <summary>Calls one of the other <see cref="M:Animancer.ManualMixerState.Set(System.Int32,System.Object,System.Boolean)"/> overloads as appropriate for the `child`.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.IndexOf(Animancer.AnimancerState)">
            <summary>Returns the index of the specified `child` state.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.DestroyChildren">
            <summary>
            Destroys all <see cref="P:Animancer.ManualMixerState.ChildStates"/> connected to this mixer. This operation cannot be undone.
            </summary>
        </member>
        <member name="M:Animancer.ManualMixerState.CreatePlayable``1(Animancer.AnimancerGraph,``0,System.Boolean)">
            <summary>
            Creates an <see cref="T:UnityEngine.Animations.AnimationScriptPlayable"/> to run the specified Animation Job instead of the usual
            <see cref="T:UnityEngine.Animations.AnimationMixerPlayable"/>.
            </summary>
            
            <remarks>
            <strong>Example:</strong><code>
            void CreatePlayableExample(AnimancerComponent animancer)
            }
                var job = new MyJob();// A struct that implements IAnimationJob.
                var mixer = new WhateverMixerState();// e.g. LinearMixerState.
                mixer.CreatePlayable(animancer, job);
                // Use mixer.Initialize, CreateChild, and SetChild to configure the children as normal.
            }
            </code>
            See also: <seealso cref="M:Animancer.ManualMixerState.CreatePlayable``1(UnityEngine.Playables.Playable@,``0,System.Boolean)"/>
            </remarks>
        </member>
        <member name="M:Animancer.ManualMixerState.CreatePlayable``1(UnityEngine.Playables.Playable@,``0,System.Boolean)">
            <summary>
            Creates an <see cref="T:UnityEngine.Animations.AnimationScriptPlayable"/> to run the specified Animation Job instead of the usual
            <see cref="T:UnityEngine.Animations.AnimationMixerPlayable"/>.
            </summary>
            
            <remarks>
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/source/creating-custom-states">
            Creating Custom States</see>
            <para></para>
            <strong>Example:</strong><code>
            public class MyMixer : LinearMixerState
            {
                protected override void CreatePlayable(out Playable playable)
                {
                    CreatePlayable(out playable, new MyJob());
                }
            
                private struct MyJob : IAnimationJob
                {
                    public void ProcessAnimation(AnimationStream stream)
                    {
                    }
            
                    public void ProcessRootMotion(AnimationStream stream)
                    {
                    }
                }
            }
            </code>
            See also: <seealso cref="M:Animancer.ManualMixerState.CreatePlayable``1(Animancer.AnimancerGraph,``0,System.Boolean)"/>
            </remarks>
        </member>
        <member name="M:Animancer.ManualMixerState.GetJobData``1">
            <summary>
            Gets the Animation Job data from the <see cref="T:UnityEngine.Animations.AnimationScriptPlayable"/>.
            </summary>
            <exception cref="T:System.InvalidCastException">
            This mixer was not initialized using <see cref="M:Animancer.ManualMixerState.CreatePlayable``1(Animancer.AnimancerGraph,``0,System.Boolean)"/>
            or <see cref="M:Animancer.ManualMixerState.CreatePlayable``1(UnityEngine.Playables.Playable@,``0,System.Boolean)"/>.
            </exception>
        </member>
        <member name="M:Animancer.ManualMixerState.SetJobData``1(``0)">
            <summary>
            Sets the Animation Job data in the <see cref="T:UnityEngine.Animations.AnimationScriptPlayable"/>.
            </summary>
            <exception cref="T:System.InvalidCastException">
            This mixer was not initialized using <see cref="M:Animancer.ManualMixerState.CreatePlayable``1(Animancer.AnimancerGraph,``0,System.Boolean)"/>
            or <see cref="M:Animancer.ManualMixerState.CreatePlayable``1(UnityEngine.Playables.Playable@,``0,System.Boolean)"/>.
            </exception>
        </member>
        <member name="P:Animancer.ManualMixerState.UpdatableIndex">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.Update">
            <summary>Recalculates the weights of child states and synchronizes their times if necessary.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.UpdateEvents">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.SetGraph(Animancer.AnimancerGraph)">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.ManualMixerState.SynchronizeNewChildren">
            <summary>Should newly added children be automatically added to the synchronization list? Default true.</summary>
        </member>
        <member name="P:Animancer.ManualMixerState.MinimumSynchronizeChildrenWeight">
            <summary>The minimum total weight of all children for their times to be synchronized. Default 0.01.</summary>
        </member>
        <member name="P:Animancer.ManualMixerState.SynchronizedChildren">
            <summary>A copy of the internal list of child states that will have their times synchronized.</summary>
            <remarks>
            If this mixer is a child of another mixer, its synchronized children will be managed by the parent.
            <para></para>
            The getter allocates a new array if <see cref="P:Animancer.ManualMixerState.SynchronizedChildCount"/> is greater than zero.
            </remarks>
        </member>
        <member name="P:Animancer.ManualMixerState.SynchronizedChildCount">
            <summary>The number of <see cref="P:Animancer.ManualMixerState.SynchronizedChildren"/>.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.IsSynchronized(Animancer.AnimancerState)">
            <summary>Is the `state` in the <see cref="P:Animancer.ManualMixerState.SynchronizedChildren"/>?</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.Synchronize(Animancer.AnimancerState)">
            <summary>Adds the `state` to the <see cref="P:Animancer.ManualMixerState.SynchronizedChildren"/>.</summary>
            <remarks>
            The `state` must be a child of this mixer.
            <para></para>
            If this mixer is a child of another mixer, the `state` will be added to the parent's
            <see cref="P:Animancer.ManualMixerState.SynchronizedChildren"/> instead.
            </remarks>
        </member>
        <member name="M:Animancer.ManualMixerState.SynchronizeDirect(Animancer.AnimancerState)">
            <summary>The internal implementation of <see cref="M:Animancer.ManualMixerState.Synchronize(Animancer.AnimancerState)"/>.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.DontSynchronize(Animancer.AnimancerState)">
            <summary>Removes the `state` from the <see cref="P:Animancer.ManualMixerState.SynchronizedChildren"/>.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.DontSynchronizeChildren">
            <summary>Removes all children of this mixer from the <see cref="P:Animancer.ManualMixerState.SynchronizedChildren"/>.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.InitializeSynchronizedChildren(System.Boolean[])">
            <summary>Initializes the internal <see cref="P:Animancer.ManualMixerState.SynchronizedChildren"/> list.</summary>
            <remarks>
            The array can be null or empty. Any elements not in the array will be treated as <c>true</c>.
            <para></para>
            This method can only be called before any <see cref="P:Animancer.ManualMixerState.SynchronizedChildren"/> are added and also before this
            mixer is made the child of another mixer.
            </remarks>
        </member>
        <member name="M:Animancer.ManualMixerState.GetParentMixer">
            <summary>
            Returns the highest <see cref="T:Animancer.ManualMixerState"/> in the hierarchy above this mixer
            or this mixer itself if there are none above it.
            </summary>
        </member>
        <member name="M:Animancer.ManualMixerState.GetParentMixer(Animancer.AnimancerNodeBase)">
            <summary>Returns the highest <see cref="T:Animancer.ManualMixerState"/> in the hierarchy above the `state` (inclusive).</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.IsChildOf(Animancer.AnimancerNodeBase,Animancer.AnimancerNodeBase)">
            <summary>Is the `child` a child of the `parent`?</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.ApplySynchronizeChildren">
            <summary>
            Synchronizes the <see cref="P:Animancer.AnimancerState.NormalizedTime"/>s of the <see cref="P:Animancer.ManualMixerState.SynchronizedChildren"/> by
            modifying their internal playable speeds.
            </summary>
        </member>
        <member name="M:Animancer.ManualMixerState.CalculateRelativeWeight(Animancer.AnimancerState)">
            <summary>Calculates the weight of the `child` multiplied by its parents up to this mixer.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.CalculateRealEffectiveSpeed">
            <summary>
            The multiplied <see cref="M:UnityEngine.Playables.PlayableExtensions.GetSpeed``1(``0)"/> of this mixer and its parents down the
            hierarchy to determine the actual speed its output is being played at.
            </summary>
            <remarks>
            This can be different from the <see cref="P:Animancer.AnimancerNodeBase.EffectiveSpeed"/> because the
            <see cref="P:Animancer.ManualMixerState.SynchronizedChildren"/> have their playable speed modified without setting their
            <see cref="P:Animancer.AnimancerNodeBase.Speed"/>.
            </remarks>
        </member>
        <member name="P:Animancer.ManualMixerState.ApplyAnimatorIK">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.ManualMixerState.ApplyFootIK">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.CalculateTotalWeight(Animancer.AnimancerState[],System.Int32)">
            <summary>Calculates the sum of the <see cref="P:Animancer.AnimancerNode.Weight"/> of all `states`.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.SetChildrenTime(System.Single,System.Boolean)">
            <summary>
            Sets <see cref="P:Animancer.AnimancerState.Time"/> for all <see cref="P:Animancer.ManualMixerState.ChildStates"/>.
            </summary>
        </member>
        <member name="M:Animancer.ManualMixerState.DisableRemainingStates(System.Int32)">
            <summary>Sets the weight of all states after the `previousIndex` to 0.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.GetTemporaryFloatArray(System.Int32)">
            <summary>Returns an array at least as large as the `count`.</summary>
            <remarks>
            The same array is returned by subsequent calls as long as it's large enough
            and it isn't cleared between calls so it will contain the previous data.
            </remarks>
        </member>
        <member name="M:Animancer.ManualMixerState.NormalizeAndApplyWeights(System.Single,System.Single[])">
            <summary>Divides `weights` by the `totalWeight` and applies them to the child states.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.GetDisplayKey(Animancer.AnimancerState)">
            <summary>Gets a user-friendly key to identify the `state` in the Inspector.</summary>
        </member>
        <member name="P:Animancer.ManualMixerState.AverageVelocity">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.NormalizeDurations">
            <summary>
            Recalculates the <see cref="P:Animancer.AnimancerState.Duration"/> of all child states so that they add up to 1.
            </summary>
        </member>
        <member name="F:Animancer.ManualMixerState._CachedToString">
            <summary>[Assert-Only] A string built by <see cref="M:Animancer.ManualMixerState.ToString"/> to describe this mixer.</summary>
        </member>
        <member name="M:Animancer.ManualMixerState.ToString">
            <summary>
            Returns a string describing the type of this mixer and the name of states connected to it.
            </summary>
        </member>
        <member name="M:Animancer.ManualMixerState.AppendDetails(System.Text.StringBuilder,System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.GatherAnimationClips(System.Collections.Generic.ICollection{UnityEngine.AnimationClip})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.GetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.ManualMixerState.SetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.MixerState`1">
            <summary>[Pro-Only]
            Base class for mixers which blend an array of child states together based on a <see cref="P:Animancer.MixerState`1.Parameter"/>.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/blending/mixers">
            Mixers</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/MixerState_1
            
        </member>
        <member name="F:Animancer.MixerState`1._Thresholds">
            <summary>The parameter values at which each of the child states are used and blended.</summary>
        </member>
        <member name="P:Animancer.MixerState`1.HasThresholds">
            <summary>
            Has the array of thresholds been initialized with a size at least equal to the
            <see cref="P:Animancer.ManualMixerState.ChildCount"/>.
            </summary>
        </member>
        <member name="M:Animancer.MixerState`1.GetThreshold(System.Int32)">
            <summary>Returns the value of the threshold associated with the specified `index`.</summary>
        </member>
        <member name="M:Animancer.MixerState`1.SetThreshold(System.Int32,`0)">
            <summary>Sets the value of the threshold associated with the specified `index`.</summary>
        </member>
        <member name="M:Animancer.MixerState`1.SetThresholds(`0[])">
            <summary>
            Assigns the specified array as the thresholds to use for blending.
            <para></para>
            WARNING: if you keep a reference to the `thresholds` array you must call <see cref="M:Animancer.MixerState`1.OnThresholdsChanged"/>
            whenever any changes are made to it, otherwise this mixer may not blend correctly.
            </summary>
        </member>
        <member name="M:Animancer.MixerState`1.ValidateThresholdCount">
            <summary>
            If the <see cref="P:System.Array.Length"/> of the <see cref="F:Animancer.MixerState`1._Thresholds"/> is below the
            <see cref="P:Animancer.AnimancerNodeBase.ChildCount"/>, this method assigns a new array with size equal to the
            <see cref="P:Animancer.ManualMixerState.ChildCapacity"/> and returns true.
            </summary>
        </member>
        <member name="M:Animancer.MixerState`1.OnThresholdsChanged">
            <summary>
            Called whenever the thresholds are changed. By default this method simply indicates that the blend weights
            need recalculating but it can be overridden by child classes to perform validation checks or optimisations.
            </summary>
        </member>
        <member name="M:Animancer.MixerState`1.CalculateThresholds(System.Func{Animancer.AnimancerState,`0})">
            <summary>
            Calls `calculate` for each of the <see cref="P:Animancer.ManualMixerState.ChildStates"/> and stores the returned value
            as the threshold for that state.
            </summary>
        </member>
        <member name="M:Animancer.MixerState`1.RecreatePlayable">
            <summary>
            Stores the values of all parameters, calls <see cref="M:Animancer.AnimancerNode.DestroyPlayable"/>, then restores the
            parameter values.
            </summary>
        </member>
        <member name="P:Animancer.MixerState`1.Parameter">
            <summary>The value used to calculate the weights of the child states.</summary>
            <remarks>
            Setting this value takes effect immediately (during the next animation update) without any
            <see href="https://kybernetik.com.au/animancer/docs/manual/blending/mixers#smoothing">Smoothing</see>.
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">The value is NaN or Infinity.</exception>
        </member>
        <member name="M:Animancer.MixerState`1.GetParameterError(`0)">
            <summary>
            Returns an error message if the given `parameter` value can't be assigned to the <see cref="P:Animancer.MixerState`1.Parameter"/>.
            Otherwise returns null.
            </summary>
        </member>
        <member name="P:Animancer.MixerState`1.NormalizedParameter">
            <summary>The <see cref="P:Animancer.MixerState`1.Parameter"/> normalized into the range of 0 to 1 across all thresholds.</summary>
        </member>
        <member name="P:Animancer.MixerState`1.WeightsAreDirty">
            <summary>Should the weights of all child states be recalculated?</summary>
        </member>
        <member name="M:Animancer.MixerState`1.SetWeightsDirty">
            <summary>Registers this mixer to recalculate its weights during the next animation update.</summary>
        </member>
        <member name="M:Animancer.MixerState`1.RecalculateWeights">
            <summary>
            If <see cref="P:Animancer.MixerState`1.WeightsAreDirty"/> this method recalculates the weights of all child states and returns true.
            </summary>
        </member>
        <member name="M:Animancer.MixerState`1.ForceRecalculateWeights">
            <summary>
            Recalculates the weights of all child states based on the current value of the
            <see cref="P:Animancer.MixerState`1.Parameter"/> and the thresholds.
            </summary>
        </member>
        <member name="M:Animancer.MixerState`1.OnSetIsPlaying">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.MixerState`1.RawTime">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.MixerState`1.Length">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.MixerState`1.AverageVelocity">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.MixerState`1.CreatePlayable(UnityEngine.Playables.Playable@)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.MixerState`1.Update">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.MixerState`1.OnChildCapacityChanged">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.MixerState`1.Add(Animancer.AnimancerState,`0)">
            <summary>Assigns the `state` as a child of this mixer and assigns the `threshold` for it.</summary>
        </member>
        <member name="M:Animancer.MixerState`1.Add(UnityEngine.AnimationClip,`0)">
            <summary>
            Creates and returns a new <see cref="T:Animancer.ClipState"/> to play the `clip` as a child of this mixer, and assigns
            the `threshold` for it.
            </summary>
        </member>
        <member name="M:Animancer.MixerState`1.Add(Animancer.ITransition,`0)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerUtilities.CreateStateAndApply(Animancer.ITransition,Animancer.AnimancerGraph)"/> then 
            <see cref="M:Animancer.MixerState`1.Add(Animancer.AnimancerState,`0)"/>.
            </summary>
        </member>
        <member name="M:Animancer.MixerState`1.Add(System.Object,`0)">
            <summary>Calls one of the other <see cref="M:Animancer.MixerState`1.Add(System.Object,`0)"/> overloads as appropriate.</summary>
        </member>
        <member name="M:Animancer.MixerState`1.CopyFrom(Animancer.ManualMixerState,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.MixerState`1.CopyFrom(Animancer.MixerState{`0},Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.MixerState`1.GetDisplayKey(Animancer.AnimancerState)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.MixerState`1.AppendDetails(System.Text.StringBuilder,System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.MixerState`1.AppendParameter(System.Text.StringBuilder,`0)">
            <summary>Appends the `parameter` in a viewer-friendly format.</summary>
        </member>
        <member name="T:Animancer.NodeParameter`1">
            <summary>A wrapper for managing a <see cref="T:Animancer.Parameter`1"/> in an <see cref="T:Animancer.AnimancerNode"/>.</summary>
            <remarks>This type is mostly intended for internal use within Mixers.</remarks>
            https://kybernetik.com.au/animancer/api/Animancer/NodeParameter_1
        </member>
        <member name="P:Animancer.NodeParameter`1.Node">
            <summary>The node that owns this parameter.</summary>
        </member>
        <member name="E:Animancer.NodeParameter`1.OnParameterChanged">
            <summary>The callback to invoke when the parameter changes.</summary>
        </member>
        <member name="P:Animancer.NodeParameter`1.IsInitialized">
            <summary>Has this <see cref="T:Animancer.NodeParameter`1"/> been constructed properly?</summary>
        </member>
        <member name="P:Animancer.NodeParameter`1.Key">
            <summary>
            This will be used as a key in the <see cref="T:Animancer.ParameterDictionary"/>
            so any changes to that parameter will invoke <see cref="E:Animancer.NodeParameter`1.OnParameterChanged"/>.
            </summary>
        </member>
        <member name="M:Animancer.NodeParameter`1.SetKeyCheckNeedsInitialize(Animancer.StringReference)">
            <summary>Sets the <see cref="P:Animancer.NodeParameter`1.Key"/> and returns <c>true</c> if <see cref="M:Animancer.NodeParameter`1.Initialize(Animancer.AnimancerNode,System.Action{`0})"/> needs to be called.</summary>
        </member>
        <member name="M:Animancer.NodeParameter`1.Initialize(Animancer.AnimancerNode,System.Action{`0})">
            <summary>Initializes and binds the parameter.</summary>
        </member>
        <member name="M:Animancer.NodeParameter`1.Bind">
            <summary>Registers to the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.</summary>
        </member>
        <member name="M:Animancer.NodeParameter`1.BindIfInitialized">
            <summary>Registers to the <see cref="P:Animancer.AnimancerGraph.Parameters"/> if <see cref="P:Animancer.NodeParameter`1.IsInitialized"/>.</summary>
        </member>
        <member name="M:Animancer.NodeParameter`1.UnBind">
            <summary>Unregisters from the <see cref="P:Animancer.AnimancerGraph.Parameters"/>.</summary>
        </member>
        <member name="M:Animancer.NodeParameter`1.UnBindIfInitialized">
            <summary>Unregisters from the <see cref="P:Animancer.AnimancerGraph.Parameters"/> if <see cref="P:Animancer.NodeParameter`1.IsInitialized"/>.</summary>
        </member>
        <member name="T:Animancer.Vector2MixerState">
            <summary>[Pro-Only]
            An <see cref="T:Animancer.AnimancerState"/> which blends an array of other states together
            based on a two dimensional parameter and thresholds.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/blending/mixers">
            Mixers</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/Vector2MixerState
            
        </member>
        <member name="P:Animancer.Vector2MixerState.ParameterX">
            <summary><see cref="P:Animancer.MixerState`1.Parameter"/>.x.</summary>
        </member>
        <member name="P:Animancer.Vector2MixerState.ParameterY">
            <summary><see cref="P:Animancer.MixerState`1.Parameter"/>.y.</summary>
        </member>
        <member name="P:Animancer.Vector2MixerState.ParameterNameX">
            <summary>
            If set, this will be used as a key in the <see cref="T:Animancer.ParameterDictionary"/> so any
            changes to that parameter will automatically set the <see cref="P:Animancer.Vector2MixerState.ParameterX"/>.
            </summary>
        </member>
        <member name="P:Animancer.Vector2MixerState.ParameterNameY">
            <summary>
            If set, this will be used as a key in the <see cref="T:Animancer.ParameterDictionary"/> so any
            changes to that parameter will automatically set the <see cref="P:Animancer.Vector2MixerState.ParameterY"/>.
            </summary>
        </member>
        <member name="M:Animancer.Vector2MixerState.SetGraph(Animancer.AnimancerGraph)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Vector2MixerState.Destroy">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Vector2MixerState.CopyFrom(Animancer.MixerState{UnityEngine.Vector2},Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Vector2MixerState.CopyFrom(Animancer.Vector2MixerState,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Vector2MixerState.GetThresholdBounds(UnityEngine.Vector2@,UnityEngine.Vector2@)">
            <summary>Gets the lowest and highest threshold values on each axis.</summary>
        </member>
        <member name="P:Animancer.Vector2MixerState.NormalizedParameter">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Vector2MixerState.GetParameterError(UnityEngine.Vector2)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Vector2MixerState.AppendParameter(System.Text.StringBuilder,UnityEngine.Vector2)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Vector2MixerState.GetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.Vector2MixerState.SetParameters(System.Collections.Generic.List{Animancer.StateParameterDetails})">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.SoloAnimationInternal">
            <summary>Plays a single <see cref="T:UnityEngine.AnimationClip"/>.</summary>
            
            <remarks>
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/playing/component-types">
            Component Types</see>
            <para></para>
            <strong>Sample:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/samples/fine-control/solo-animation">Solo Animation</see>
            </remarks>
            
            https://kybernetik.com.au/animancer/api/Animancer/SoloAnimation
            
        </member>
        <member name="F:Animancer.SoloAnimationInternal.DefaultExecutionOrder">
            <summary>Initialize before anything else tries to use this component.</summary>
        </member>
        <member name="P:Animancer.SoloAnimationInternal.Animator">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>]
            The <see cref="T:UnityEngine.Animator"/> component which this script controls.
            </summary>
            <remarks>
            If you need to set this value at runtime you are likely better off using a proper
            <see cref="!:AnimancerComponent"/>.
            </remarks>
        </member>
        <member name="P:Animancer.SoloAnimationInternal.Clip">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The <see cref="T:UnityEngine.AnimationClip"/> that will be played.</summary>
            <remarks>
            If you need to set this value at runtime you are likely better off using a proper
            <see cref="!:AnimancerComponent"/>.
            </remarks>
        </member>
        <member name="P:Animancer.SoloAnimationInternal.Length">
            <summary><see cref="P:UnityEngine.AnimationClip.length"/></summary>
            <remarks>
            This value is cached on startup
            and is <see cref="F:System.Single.NaN"/> if there's no <see cref="P:Animancer.SoloAnimationInternal.Clip"/>.
            </remarks>
        </member>
        <member name="P:Animancer.SoloAnimationInternal.IsLooping">
            <summary><see cref="P:UnityEngine.Motion.isLooping"/></summary>
            <remarks>This value is cached on startup.</remarks>
        </member>
        <member name="P:Animancer.SoloAnimationInternal.StopOnDisable">
            <summary>
            Should disabling this object stop and rewind the animation?
            Otherwise, it will simply be paused and will resume from its current state when re-enabled.
            </summary>
            <remarks>
            The default value is true.
            <para></para>
            This property inverts <see cref="P:UnityEngine.Animator.keepAnimatorStateOnDisable"/>
            and is serialized by the <see cref="T:UnityEngine.Animator"/>.
            </remarks>
        </member>
        <member name="F:Animancer.SoloAnimationInternal._Graph">
            <summary>The <see cref="T:UnityEngine.Playables.PlayableGraph"/> being used to play the <see cref="P:Animancer.SoloAnimationInternal.Clip"/>.</summary>
        </member>
        <member name="F:Animancer.SoloAnimationInternal._Playable">
            <summary>The <see cref="T:UnityEngine.Animations.AnimationClipPlayable"/> being used to play the <see cref="P:Animancer.SoloAnimationInternal.Clip"/>.</summary>
        </member>
        <member name="P:Animancer.SoloAnimationInternal.IsPlaying">
            <summary>Is the animation playing (true) or paused (false)?</summary>
        </member>
        <member name="P:Animancer.SoloAnimationInternal.NormalizedStartTime">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The normalized time that the animation will start at.</summary>
        </member>
        <member name="P:Animancer.SoloAnimationInternal.Time">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>]
            The number of seconds that have passed since the start of the animation.
            </summary>
            <remarks>
            This value will continue increasing after the animation passes the end of its length
            and it will either freeze in place or start again from the beginning according to
            whether it's looping or not.
            </remarks>
        </member>
        <member name="M:Animancer.SoloAnimationInternal.SetTime(System.Double)">
            <summary>
            Calls <see cref="M:UnityEngine.Playables.PlayableExtensions.SetTime``1(``0,System.Double)"/> twice
            to ensure that animation events aren't triggered incorrectly.
            </summary>
        </member>
        <member name="P:Animancer.SoloAnimationInternal.NormalizedTime">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>]
            The <see cref="P:Animancer.SoloAnimationInternal.Time"/> of this state as a portion of the <see cref="P:UnityEngine.AnimationClip.length"/>,
            meaning the value goes from 0 to 1 as it plays from start to end,
            regardless of how long that actually takes.
            </summary>
            <remarks>
            This value will continue increasing after the animation passes the end of its length
            and it will either freeze in place or start again from the beginning according to
            whether it's looping or not.
            <para></para>
            The fractional part of the value (<c>NormalizedTime % 1</c>) is the percentage (0-1)
            of progress in the current loop while the integer part (<c>(int)NormalizedTime</c>)
            is the number of times the animation has been looped.
            </remarks>
        </member>
        <member name="P:Animancer.SoloAnimationInternal.Speed">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The speed at which the animation is playing (default 1).</summary>
            <exception cref="T:System.ArgumentException">This component is not yet <see cref="P:Animancer.SoloAnimationInternal.IsInitialized"/>.</exception>
        </member>
        <member name="P:Animancer.SoloAnimationInternal.IsInitialized">
            <summary>Indicates whether the <see cref="T:UnityEngine.Playables.PlayableGraph"/> is valid.</summary>
        </member>
        <member name="P:Animancer.SoloAnimationInternal.ApplyInEditMode">
            <summary>[Editor-Only] Should the <see cref="P:Animancer.SoloAnimationInternal.Clip"/> be automatically applied to the object in Edit Mode?</summary>
        </member>
        <member name="M:Animancer.SoloAnimationInternal.Reset">
            <summary>[Editor-Only]
            Tries to find an <see cref="T:UnityEngine.Animator"/> component on this <see cref="T:UnityEngine.GameObject"/> or its
            children or parents (in that order).
            </summary>
            <remarks>
            Called by the Unity Editor when this component is first added (in Edit Mode) and whenever the Reset command
            is executed from its context menu.
            </remarks>
        </member>
        <member name="M:Animancer.SoloAnimationInternal.OnValidate">
            <summary>[Editor-Only]
            Applies the <see cref="P:Animancer.SoloAnimationInternal.Speed"/>, <see cref="!:FootIK"/>, and <see cref="P:Animancer.SoloAnimationInternal.ApplyInEditMode"/>.
            </summary>
            <remarks>Called in Edit Mode whenever this script is loaded or a value is changed in the Inspector.</remarks>
        </member>
        <member name="M:Animancer.SoloAnimationInternal.Play">
            <summary>Plays the <see cref="P:Animancer.SoloAnimationInternal.Clip"/>.</summary>
        </member>
        <member name="M:Animancer.SoloAnimationInternal.Play(UnityEngine.AnimationClip)">
            <summary>Plays the `clip`.</summary>
        </member>
        <member name="M:Animancer.SoloAnimationInternal.Evaluate">
            <summary>Calls <see cref="M:UnityEngine.Playables.PlayableGraph.Evaluate"/>.</summary>
        </member>
        <member name="M:Animancer.SoloAnimationInternal.Evaluate(System.Single)">
            <summary>Calls <see cref="M:UnityEngine.Playables.PlayableGraph.Evaluate(System.Single)"/>.</summary>
        </member>
        <member name="M:Animancer.SoloAnimationInternal.OnEnable">
            <summary>Plays the <see cref="P:Animancer.SoloAnimationInternal.Clip"/> on the target <see cref="P:Animancer.SoloAnimationInternal.Animator"/>.</summary>
        </member>
        <member name="M:Animancer.SoloAnimationInternal.LateUpdate">
            <summary>
            Checks if the animation is done
            so it can pause the <see cref="T:UnityEngine.Playables.PlayableGraph"/> to improve performance.
            </summary>
        </member>
        <member name="M:Animancer.SoloAnimationInternal.OnDisable">
            <summary>Stops playing and rewinds if <see cref="P:Animancer.SoloAnimationInternal.StopOnDisable"/>.</summary>
        </member>
        <member name="M:Animancer.SoloAnimationInternal.OnDestroy">
            <summary>Ensures that the <see cref="T:UnityEngine.Playables.PlayableGraph"/> is properly cleaned up.</summary>
        </member>
        <member name="M:Animancer.SoloAnimationInternal.Finalize">
            <summary>[Editor-Only] Ensures that the <see cref="T:UnityEngine.Playables.PlayableGraph"/> is destroyed.</summary>
        </member>
        <member name="M:Animancer.SoloAnimationInternal.GetAnimationClips(System.Collections.Generic.List{UnityEngine.AnimationClip})">
            <summary>[<see cref="T:UnityEngine.IAnimationClipSource"/>] Adds the <see cref="P:Animancer.SoloAnimationInternal.Clip"/> to the list.</summary>
        </member>
        <member name="T:Animancer.TransitionLibraries.NamedIndex">
            <summary>[<see cref="T:System.SerializableAttribute"/>] A <see cref="T:Animancer.StringAssetInternal"/> and <see cref="T:System.Int32"/> pair.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions/libraries">
            Transition Libraries</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.TransitionLibraries/NamedIndex
        </member>
        <member name="P:Animancer.TransitionLibraries.NamedIndex.Name">
            <summary>The name.</summary>
        </member>
        <member name="P:Animancer.TransitionLibraries.NamedIndex.Index">
            <summary>The index.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.NamedIndex.#ctor(Animancer.StringAssetInternal,System.Int32)">
            <summary>Creates a new <see cref="T:Animancer.TransitionLibraries.NamedIndex"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.NamedIndex.With(Animancer.StringAssetInternal)">
            <summary>Creates a new <see cref="T:Animancer.TransitionLibraries.NamedIndex"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.NamedIndex.With(System.Int32)">
            <summary>Creates a new <see cref="T:Animancer.TransitionLibraries.NamedIndex"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.NamedIndex.ToString">
            <summary>Describes this value.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.NamedIndex.CompareTo(Animancer.TransitionLibraries.NamedIndex)">
            <summary>Compares the <see cref="P:Animancer.TransitionLibraries.NamedIndex.Index"/> then <see cref="P:Animancer.TransitionLibraries.NamedIndex.Name"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.NamedIndex.Equals(System.Object)">
            <summary>Are all fields in this object equal to the equivalent in `obj`?</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.NamedIndex.Equals(Animancer.TransitionLibraries.NamedIndex)">
            <summary>Are all fields in this object equal to the equivalent fields in `other`?</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.NamedIndex.op_Equality(Animancer.TransitionLibraries.NamedIndex,Animancer.TransitionLibraries.NamedIndex)">
            <summary>Are all fields in `a` equal to the equivalent fields in `b`?</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.NamedIndex.op_Inequality(Animancer.TransitionLibraries.NamedIndex,Animancer.TransitionLibraries.NamedIndex)">
            <summary>Are any fields in `a` not equal to the equivalent fields in `b`?</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.NamedIndex.GetHashCode">
            <summary>Returns a hash code based on the values of this object's fields.</summary>
        </member>
        <member name="T:Animancer.TransitionLibraries.TransitionLibrary">
            <summary>[Pro-Only]
            A library of <see cref="T:Animancer.ITransition"/>s which allows specific
            transition combinations to be overridden without needing to be hard coded.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions/libraries">
            Transition Libraries</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.TransitionLibraries/TransitionLibrary
        </member>
        <member name="F:Animancer.TransitionLibraries.TransitionLibrary.TransitionModifiers">
            <summary>[Pro-Only] Modifiers in the order they are created.</summary>
            <remarks>The <see cref="F:Animancer.TransitionLibraries.TransitionModifierGroup.Index"/> of each item corresponds to its position in this list.</remarks>
        </member>
        <member name="F:Animancer.TransitionLibraries.TransitionLibrary.KeyedTransitionModifiers">
            <summary>[Pro-Only] Modifiers registered by their <see cref="P:Animancer.IHasKey.Key"/> as well as any custom aliases.</summary>
        </member>
        <member name="P:Animancer.TransitionLibraries.TransitionLibrary.Count">
            <summary>[Pro-Only] The number of transitions in this library.</summary>
        </member>
        <member name="P:Animancer.TransitionLibraries.TransitionLibrary.AliasCount">
            <summary>[Pro-Only] The number of transitions in this library plus any additional aliases.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.ContainsKey(System.Object)">
            <summary>[Pro-Only]
            Does this library contain a transition registered with the `key`?
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.ContainsKey(Animancer.IHasKey)">
            <summary>[Pro-Only]
            Does this library contain a transition registered with the <see cref="P:Animancer.IHasKey.Key"/>?
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.TryGetTransition(System.Object,Animancer.TransitionLibraries.TransitionModifierGroup@)">
            <summary>[Pro-Only]
            Tries to find a <see cref="T:Animancer.TransitionLibraries.TransitionModifierGroup"/> registered with the `key`.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.TryGetTransition(Animancer.IHasKey,Animancer.TransitionLibraries.TransitionModifierGroup@)">
            <summary>[Pro-Only]
            Tries to find a <see cref="T:Animancer.TransitionLibraries.TransitionModifierGroup"/> registered with the <see cref="P:Animancer.IHasKey.Key"/>.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.TryGetTransition(System.Int32,Animancer.TransitionLibraries.TransitionModifierGroup@)">
            <summary>[Pro-Only]
            Tries to find a <see cref="T:Animancer.TransitionLibraries.TransitionModifierGroup"/>
            via its <see cref="F:Animancer.TransitionLibraries.TransitionModifierGroup.Index"/>.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.IndexOf(System.Object)">
            <summary>[Pro-Only]
            Finds the <see cref="F:Animancer.TransitionLibraries.TransitionModifierGroup.Index"/> of the group registered with the `key`
            or returns <c>-1</c>.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.IndexOf(Animancer.IHasKey)">
            <summary>[Pro-Only]
            Finds the <see cref="F:Animancer.TransitionLibraries.TransitionModifierGroup.Index"/> of the group registered with the `key`
            or returns <c>-1</c>.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.GetFadeDuration(System.Object,Animancer.ITransition)">
            <summary>[Pro-Only]
            Returns the fade duration to use when transitioning from `from` to the `transition`.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.GetFadeDuration(Animancer.IHasKey,Animancer.ITransition)">
            <summary>[Pro-Only]
            Returns the fade duration to use when transitioning from `from` to the `transition`.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.GetFadeDuration(Animancer.AnimancerLayer,Animancer.ITransition)">
            <summary>[Pro-Only]
            Returns the fade duration to use when transitioning from the
            <see cref="P:Animancer.AnimancerLayer.CurrentState"/> to the `transition`.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.GetFadeDuration(Animancer.AnimancerLayer,System.Object,System.Single)">
            <summary>[Pro-Only]
            Returns the fade duration to use when transitioning from the
            <see cref="P:Animancer.AnimancerLayer.CurrentState"/> to the `key`.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.GetAnimationClips(System.Collections.Generic.List{UnityEngine.AnimationClip})">
            <summary>[Pro-Only] Gathers all the animations in this library.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.Initialize(Animancer.TransitionLibraries.TransitionLibraryDefinition)">
            <summary>[Pro-Only] Adds the contents of the `definition` to this library.</summary>
            <remarks>Existing values will be completely replaced.</remarks>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.AddTransition(System.Object,Animancer.ITransition)">
            <summary>[Pro-Only] Adds the `transition` to this library.</summary>
            <exception cref="T:System.ArgumentException">A transition is already registered with the `key`.</exception>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.AddTransition(Animancer.IHasKey,Animancer.ITransition)">
            <summary>[Pro-Only] Adds the `transition` to this library.</summary>
            <exception cref="T:System.ArgumentException">A transition is already registered with the `key`.</exception>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.AddTransition(Animancer.ITransition)">
            <summary>[Pro-Only] Adds the `transition` to this library.</summary>
            <exception cref="T:System.ArgumentException">A transition is already registered with the `key`.</exception>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.SetTransition(System.Object,Animancer.ITransition)">
            <summary>[Pro-Only]
            Adds the `transition` to this library or replaces the existing one registered with the `key`.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.SetTransition(Animancer.IHasKey,Animancer.ITransition)">
            <summary>[Pro-Only]
            Adds the `transition` to this library or replaces the existing one registered with the `key`.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.SetTransition(Animancer.ITransition)">
            <summary>[Pro-Only]
            Adds the `transition` to this library or replaces the existing one registered with the `key`.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.SetFadeDuration(System.Object,Animancer.ITransition,System.Single)">
            <summary>[Pro-Only]
            Sets the <see cref="P:Animancer.ITransition.FadeDuration"/> to use when transitioning from `from` to `to`.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.SetFadeDuration(Animancer.IHasKey,Animancer.ITransition,System.Single)">
            <summary>[Pro-Only]
            Sets the <see cref="P:Animancer.ITransition.FadeDuration"/> to use when transitioning from `from` to `to`.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.SetFadeDuration(Animancer.TransitionLibraries.TransitionModifierDefinition)">
            <summary>[Pro-Only]
            Sets the <see cref="P:Animancer.ITransition.FadeDuration"/> to use when transitioning from
            <see cref="P:Animancer.TransitionLibraries.TransitionModifierDefinition.FromIndex"/> to <see cref="P:Animancer.TransitionLibraries.TransitionModifierDefinition.ToIndex"/>.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.AddAlias(System.Object,Animancer.TransitionLibraries.TransitionModifierGroup)">
            <summary>[Pro-Only] Registers the `group` with another `key`.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.AddAlias(System.Object,Animancer.ITransition)">
            <summary>[Pro-Only] Registers the `transition` with the `key`.</summary>
            <remarks>Also registers it with its <see cref="P:Animancer.IHasKey.Key"/> if it wasn't already.</remarks>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.AddLibrary(Animancer.TransitionLibraries.TransitionLibrary,Animancer.CloneContext)">
            <summary>[Pro-Only] Adds the contents of `copyFrom` into this library.</summary>
            <remarks>
            This method adds and replaces values, but does not remove any
            (unlike <see cref="M:Animancer.TransitionLibraries.TransitionLibrary.CopyFrom(Animancer.TransitionLibraries.TransitionLibrary,Animancer.CloneContext)"/>.
            </remarks>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.AddLibrary(Animancer.TransitionLibraries.TransitionLibrary)">
            <summary>[Pro-Only] Adds the contents of `copyFrom` into this library.</summary>
            <remarks>
            This method adds and replaces values, but does not remove any
            (unlike <see cref="M:Animancer.TransitionLibraries.TransitionLibrary.CopyFrom(Animancer.TransitionLibraries.TransitionLibrary,Animancer.CloneContext)"/>.
            </remarks>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.CopyFrom(Animancer.TransitionLibraries.TransitionLibrary,Animancer.CloneContext)">
            <inheritdoc/>
            <remarks>See also <see cref="M:Animancer.TransitionLibraries.TransitionLibrary.AddLibrary(Animancer.TransitionLibraries.TransitionLibrary,Animancer.CloneContext)"/>.</remarks>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.RemoveTransition(System.Object)">
            <summary>[Pro-Only] Removes the transition registered with the `key`.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.RemoveTransition(Animancer.IHasKey)">
            <summary>[Pro-Only] Removes the transition registered with the <see cref="P:Animancer.IHasKey.Key"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.RemoveFadeDuration(System.Object,System.Object)">
            <summary>[Pro-Only] Removes a modified fade duration for transitioning from `from` to `to`.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.RemoveFadeDuration(Animancer.IHasKey,Animancer.IHasKey)">
            <summary>[Pro-Only] Removes a modified fade duration for transitioning from `from` to `to`.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.Clear">
            <summary>[Pro-Only] Removes everything from this library, leaving it empty.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.Play(Animancer.AnimancerLayer,Animancer.ITransition)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerLayer.Play(Animancer.ITransition,System.Single,Animancer.FadeMode)"/>
            with the fade duration potentially modified by this library.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.Play(Animancer.AnimancerLayer,Animancer.TransitionLibraries.TransitionModifierGroup)">
            <summary>
            Calls <see cref="M:Animancer.AnimancerLayer.Play(Animancer.ITransition,System.Single,Animancer.FadeMode)"/>
            with the fade duration potentially modified by this library.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.TryPlay(Animancer.AnimancerLayer,System.Object)">
            <summary>
            Plays the transition registered with the specified `key` if there is one.
            Otherwise, returns <c>null</c>.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.AssertStringReference(System.Object)">
            <summary>[Assert-Conditional]
            Logs <see cref="F:Animancer.OptionalWarning.StringReference"/> if the `key` is a <see cref="T:System.String"/>.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibrary.AssertGroup(Animancer.TransitionLibraries.TransitionModifierGroup)">
            <summary>[Assert-Conditional]
            Asserts that the <see cref="F:Animancer.TransitionLibraries.TransitionModifierGroup.Index"/>
            corresponds to the <see cref="F:Animancer.TransitionLibraries.TransitionLibrary.TransitionModifiers"/>.
            </summary>
        </member>
        <member name="T:Animancer.TransitionLibraries.TransitionLibraryAssetInternal">
            <summary>[Pro-Only]
            A <see cref="T:UnityEngine.ScriptableObject"/> which serializes a <see cref="T:Animancer.TransitionLibraries.TransitionLibraryDefinition"/>
            and creates a <see cref="T:Animancer.TransitionLibraries.TransitionLibrary"/> from it at runtime.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions/libraries">
            Transition Libraries</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.TransitionLibraries/TransitionLibraryAsset
        </member>
        <member name="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Definition">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>]
            The serialized data which will be used to initialize the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Library"/> at runtime.
            </summary>
            <remarks>
            If you modify the contents of this reference, either re-assign this property
            or call <see cref="M:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.OnDefinitionModified"/> to apply any changes to the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Library"/>.
            </remarks>
        </member>
        <member name="F:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.DefinitionField">
            <summary>[Editor-Only] [Internal]
            The name of the field which stores the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Definition"/>.
            </summary>
        </member>
        <member name="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Library">
            <summary>The runtime <see cref="T:Animancer.TransitionLibraries.TransitionLibrary"/> created from the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Definition"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.OnEnable">
            <summary>Initializes the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Library"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.OnDefinitionModified">
            <summary>
            Adds the contents of the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Definition"/>
            to the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Library"/> if it was already initialized.
            </summary>
            <remarks>
            Call this after modifying the contents of the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Definition"/>
            to ensure that the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Library"/> reflects any changes.
            <para></para>
            Note that this doesn't remove anything from the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Library"/>,
            it only adds or replaces values.
            </remarks>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.GetAnimationClips(System.Collections.Generic.List{UnityEngine.AnimationClip})">
            <summary>Gathers all the animations in the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Definition"/> and <see cref="P:Animancer.TransitionLibraries.TransitionLibraryAssetInternal.Library"/>.</summary>
        </member>
        <member name="T:Animancer.TransitionLibraries.TransitionLibraryDefinition">
            <summary>[<see cref="T:System.SerializableAttribute"/>]
            A library of transitions and other details which can create a <see cref="T:Animancer.TransitionLibraries.TransitionLibrary"/>.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions/libraries">
            Transition Libraries</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.TransitionLibraries/TransitionLibraryDefinition
        </member>
        <member name="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Transitions">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] The transitions in this library.</summary>
            <remarks>This property uses an empty array instead of <c>null</c>.</remarks>
        </member>
        <member name="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Modifiers">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] Modified fade durations for specific transition combinations.</summary>
            <remarks>This property uses an empty array instead of <c>null</c>.</remarks>
        </member>
        <member name="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Aliases">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>] Alternate names that can be used to look up transitions.</summary>
            <remarks>
            This array should always be sorted, use <see cref="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.SortAliases"/> if necessary.
            <para></para>
            This property uses an empty array instead of <c>null</c>.
            </remarks>
        </member>
        <member name="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.AliasAllTransitions">
            <summary>[<see cref="T:UnityEngine.SerializeField"/>]
            Should all Transitions automatically be registered using their name as an Alias?
            </summary>
        </member>
        <member name="F:Animancer.TransitionLibraries.TransitionLibraryDefinition.AliasAllTransitionsField">
            <summary>[Editor-Only] [Internal]
            The name of the field which stores the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.AliasAllTransitions"/>.
            </summary>
        </member>
        <member name="F:Animancer.TransitionLibraries.TransitionLibraryDefinition.AliasAllTransitionsTooltip">
            <summary>Tooltip for the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.AliasAllTransitions"/> field.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.TryGetTransition(System.Int32,Animancer.TransitionAssetBase@)">
            <summary>
            <see cref="M:Animancer.AnimancerUtilities.TryGet``1(System.Collections.Generic.IList{``0},System.Int32,``0@)"/> for the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Transitions"/>.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.AddTransition(Animancer.TransitionAssetBase)">
            <summary>Adds an item to the end of the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Transitions"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.RemoveTransition(System.Int32)">
            <summary>
            Removes an item from the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Transitions"/>
            and adjusts the other fields to account for the moved indices.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.TryGetModifier(System.Int32,System.Int32,Animancer.TransitionLibraries.TransitionModifierDefinition@)">
            <summary>Tries to find an item in the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Modifiers"/> with the specified indices.</summary>
            <remarks>
            If unsuccessful, the `modifier` is given the <see cref="P:Animancer.ITransition.FadeDuration"/>
            from the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Transitions"/> at the `toIndex`. and this method returns false.
            </remarks>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.IndexOfModifier(System.Int32,System.Int32)">
            <summary>
            Returns the index in the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Modifiers"/> which matches the given
            <see cref="P:Animancer.TransitionLibraries.TransitionModifierDefinition.FromIndex"/> and
            <see cref="P:Animancer.TransitionLibraries.TransitionModifierDefinition.ToIndex"/> or -1 if no such item exists.
            </summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.SetModifier(Animancer.TransitionLibraries.TransitionModifierDefinition)">
            <summary>Adds or replaces an item in the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Modifiers"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.RemoveModifier(Animancer.TransitionLibraries.TransitionModifierDefinition)">
            <summary>Removes an item from the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Modifiers"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.RemoveModifier(System.Int32,System.Int32)">
            <summary>Removes an item from the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Modifiers"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.AddAlias(Animancer.TransitionLibraries.NamedIndex)">
            <summary>Adds an item to the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Aliases"/>, sorted by its values.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.RemoveAlias(Animancer.TransitionLibraries.NamedIndex)">
            <summary>Removes an item from the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Aliases"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.RemoveAlias(System.Int32)">
            <summary>Removes an item from the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Aliases"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.SortAliases">
            <summary>Ensures that the <see cref="P:Animancer.TransitionLibraries.TransitionLibraryDefinition.Aliases"/> are sorted.</summary>
            <remarks>This method shouldn't need to be called manually since aliases are always added in order.</remarks>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.Equals(System.Object)">
            <summary>Are all fields in this object equal to the equivalent in `obj`?</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.Equals(Animancer.TransitionLibraries.TransitionLibraryDefinition)">
            <summary>Are all fields in this object equal to the equivalent fields in `other`?</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.op_Equality(Animancer.TransitionLibraries.TransitionLibraryDefinition,Animancer.TransitionLibraries.TransitionLibraryDefinition)">
            <summary>Are all fields in `a` equal to the equivalent fields in `b`?</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.op_Inequality(Animancer.TransitionLibraries.TransitionLibraryDefinition,Animancer.TransitionLibraries.TransitionLibraryDefinition)">
            <summary>Are any fields in `a` not equal to the equivalent fields in `b`?</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.GetHashCode">
            <summary>Returns a hash code based on the values of this object's fields.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.GetAnimationClips(System.Collections.Generic.List{UnityEngine.AnimationClip})">
            <summary>Gathers all the animations in this definition.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.CopyFrom(Animancer.TransitionLibraries.TransitionLibraryDefinition,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionLibraryDefinition.AppendDescription(System.Text.StringBuilder,System.String)">
            <inheritdoc/>
        </member>
        <member name="T:Animancer.TransitionLibraries.TransitionModifierDefinition">
            <summary>[<see cref="T:System.SerializableAttribute"/>]
            Details about how to modify a transition when it comes from a specific source.
            </summary>
            <remarks>
            Multiple of these can be used to build a <see cref="T:Animancer.TransitionLibraries.TransitionModifierGroup"/> at runtime.
            <para></para>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions/libraries">
            Transition Libraries</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.TransitionLibraries/TransitionModifierDefinition
        </member>
        <member name="P:Animancer.TransitionLibraries.TransitionModifierDefinition.FromIndex">
            <summary>The index of the source transition in the <see cref="T:Animancer.TransitionLibraries.TransitionLibraryDefinition"/>.</summary>
        </member>
        <member name="P:Animancer.TransitionLibraries.TransitionModifierDefinition.ToIndex">
            <summary>The index of the destination transition in the <see cref="T:Animancer.TransitionLibraries.TransitionLibraryDefinition"/>.</summary>
        </member>
        <member name="P:Animancer.TransitionLibraries.TransitionModifierDefinition.FadeDuration">
            <summary>The fade duration for this override to use.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierDefinition.#ctor(System.Int32,System.Int32,System.Single)">
            <summary>Creates a new <see cref="T:Animancer.TransitionLibraries.TransitionModifierDefinition"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierDefinition.WithFadeDuration(System.Single)">
            <summary>Creates a copy of this override with the specified <see cref="P:Animancer.TransitionLibraries.TransitionModifierDefinition.FadeDuration"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierDefinition.WithIndices(System.Int32,System.Int32)">
            <summary>Creates a copy of this override with the specified <see cref="P:Animancer.TransitionLibraries.TransitionModifierDefinition.FromIndex"/> and <see cref="P:Animancer.TransitionLibraries.TransitionModifierDefinition.ToIndex"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierDefinition.ToString">
            <summary>Creates a new string describing this override.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierDefinition.Equals(System.Object)">
            <summary>Are all fields in this object equal to the equivalent in `obj`?</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierDefinition.Equals(Animancer.TransitionLibraries.TransitionModifierDefinition)">
            <summary>Are all fields in this object equal to the equivalent fields in `other`?</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierDefinition.op_Equality(Animancer.TransitionLibraries.TransitionModifierDefinition,Animancer.TransitionLibraries.TransitionModifierDefinition)">
            <summary>Are all fields in `a` equal to the equivalent fields in `b`?</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierDefinition.op_Inequality(Animancer.TransitionLibraries.TransitionModifierDefinition,Animancer.TransitionLibraries.TransitionModifierDefinition)">
            <summary>Are any fields in `a` not equal to the equivalent fields in `b`?</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierDefinition.GetHashCode">
            <summary>Returns a hash code based on the values of this object's fields.</summary>
        </member>
        <member name="T:Animancer.TransitionLibraries.TransitionModifierGroup">
            <summary>
            An <see cref="T:Animancer.ITransition"/> and a dictionary to modify it based on the previous state.
            </summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions/libraries">
            Transition Libraries</see>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer.TransitionLibraries/TransitionModifierGroup
        </member>
        <member name="F:Animancer.TransitionLibraries.TransitionModifierGroup.Index">
            <summary>The index at which this group was added to its <see cref="T:Animancer.TransitionLibraries.TransitionLibrary"/>.</summary>
        </member>
        <member name="P:Animancer.TransitionLibraries.TransitionModifierGroup.Transition">
            <summary>The target transition of this group.</summary>
            <remarks>Can't be <c>null</c>.</remarks>
        </member>
        <member name="P:Animancer.TransitionLibraries.TransitionModifierGroup.FromKeyToFadeDuration">
            <summary>
            Custom <see cref="P:Animancer.ITransition.FadeDuration"/>s to use when playing the <see cref="P:Animancer.TransitionLibraries.TransitionModifierGroup.Transition"/>
            depending on the <see cref="P:Animancer.IHasKey.Key"/> of the source state it is coming from.
            </summary>
            <remarks>This is <c>null</c> by default until <see cref="M:Animancer.TransitionLibraries.TransitionModifierGroup.SetFadeDuration(System.Object,System.Single)"/> adds something.</remarks>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierGroup.#ctor(System.Int32,Animancer.ITransition)">
            <summary>Creates a new <see cref="T:Animancer.TransitionLibraries.TransitionModifierGroup"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierGroup.SetFadeDuration(System.Object,System.Single)">
            <summary>Sets the `fadeDuration` to use when transitioning from `from` to the <see cref="P:Animancer.TransitionLibraries.TransitionModifierGroup.Transition"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierGroup.ResetFadeDuration(System.Object)">
            <summary>Removes the fade duration modifier set for transitioning from `from` to the <see cref="P:Animancer.TransitionLibraries.TransitionModifierGroup.Transition"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierGroup.GetFadeDuration(System.Object)">
            <summary>Returns the fade duration to use when transitioning from `from` to the <see cref="P:Animancer.TransitionLibraries.TransitionModifierGroup.Transition"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierGroup.Clone(Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierGroup.CopyFrom(Animancer.TransitionLibraries.TransitionModifierGroup,Animancer.CloneContext)">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.TransitionLibraries.TransitionModifierGroup.ToString">
            <summary>Describes this object.</summary>
        </member>
        <member name="T:Animancer.TransitionAssetBase">
            <summary>A <see cref="T:UnityEngine.ScriptableObject"/> based <see cref="T:Animancer.ITransition"/>.</summary>
            <remarks>
            <strong>Documentation:</strong>
            <see href="https://kybernetik.com.au/animancer/docs/manual/transitions/assets">
            Transition Assets</see>
            <para></para>
            When adding a <see cref="T:UnityEngine.CreateAssetMenuAttribute"/> to any derived classes, you can use
            <see cref="F:Animancer.Strings.MenuPrefix"/> and <see cref="F:Animancer.Strings.AssetMenuOrder"/>.
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/TransitionAssetBase
        </member>
        <member name="F:Animancer.TransitionAssetBase.TransitionField">
            <summary>The name of the serialized backing field of <see cref="M:Animancer.TransitionAssetBase.GetTransition"/>.</summary>
        </member>
        <member name="M:Animancer.TransitionAssetBase.GetTransition">
            <summary>Returns the <see cref="T:Animancer.ITransitionDetailed"/> wrapped by this <see cref="T:UnityEngine.ScriptableObject"/>.</summary>
        </member>
        <member name="P:Animancer.TransitionAssetBase.Animancer#IWrapper#WrappedObject">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.TransitionAssetBase.FadeDuration">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.TransitionAssetBase.Key">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.TransitionAssetBase.FadeMode">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.TransitionAssetBase.CreateState">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.TransitionAssetBase.Apply(Animancer.AnimancerState)">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.TransitionAssetBase.IsValid">
            <summary>Can this transition create a valid <see cref="T:Animancer.AnimancerState"/>?</summary>
        </member>
        <member name="P:Animancer.TransitionAssetBase.IsLooping">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.TransitionAssetBase.NormalizedStartTime">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.TransitionAssetBase.MaximumDuration">
            <inheritdoc/>
        </member>
        <member name="P:Animancer.TransitionAssetBase.Speed">
            <inheritdoc/>
        </member>
        <member name="M:Animancer.TransitionAssetBase.GetAnimationClips(System.Collections.Generic.List{UnityEngine.AnimationClip})">
            <summary>[<see cref="T:UnityEngine.IAnimationClipSource"/>]
            Calls <see cref="M:Animancer.AnimancerUtilities.GatherFromSource(System.Collections.Generic.ICollection{UnityEngine.AnimationClip},System.Object)"/>.
            </summary>
        </member>
        <member name="P:Animancer.TransitionAssetBase.CreateInstance">
            <summary>[Editor-Only] Creates an instance of the main non-abstract inheritor of this class.</summary>
            <remarks><c>TransitionAsset</c> sets this to use itself by default.</remarks>
        </member>
        <member name="T:Animancer.TryCreateTransitionAttribute">
            <summary>Attribute for static methods which try to create a transition from an object.</summary>
            <remarks>
            The method signature must be:
            <c>static ITransitionDetailed TryCreateTransition(Object target)</c>
            </remarks>
            https://kybernetik.com.au/animancer/api/Animancer/TryCreateTransitionAttribute
        </member>
        <member name="M:Animancer.TryCreateTransitionAttribute.InitializeMethods">
            <summary>[Editor-Only] Ensures that all methods with this attribute have been gathered.</summary>
        </member>
        <member name="M:Animancer.TryCreateTransitionAttribute.TryCreateTransitionAsset(UnityEngine.Object)">
            <summary>[Editor-Only] Tries to create an asset containing an appropriate transition for the `target`.</summary>
        </member>
        <member name="T:System.Index">
            <summary>Represent a type can be used to index a collection either from the start or the end.</summary>
            <remarks>
            Index is used by the C# compiler to support the new index syntax
            <code>
            int[] someArray = new int[5] { 1, 2, 3, 4, 5 } ;
            int lastElement = someArray[^1]; // lastElement = 5
            </code>
            </remarks>
        </member>
        <member name="M:System.Index.#ctor(System.Int32,System.Boolean)">
            <summary>Construct an Index using a value and indicating if the index is from the start or from the end.</summary>
            <param name="value">The index value. it has to be zero or positive number.</param>
            <param name="fromEnd">Indicating if the index is from the start or from the end.</param>
            <remarks>
            If the Index constructed from the end, index value 1 means pointing at the last element and index value 0 means pointing at beyond last element.
            </remarks>
        </member>
        <member name="P:System.Index.Start">
            <summary>Create an Index pointing at first element.</summary>
        </member>
        <member name="P:System.Index.End">
            <summary>Create an Index pointing at beyond last element.</summary>
        </member>
        <member name="M:System.Index.FromStart(System.Int32)">
            <summary>Create an Index from the start at the position indicated by the value.</summary>
            <param name="value">The index value from the start.</param>
        </member>
        <member name="M:System.Index.FromEnd(System.Int32)">
            <summary>Create an Index from the end at the position indicated by the value.</summary>
            <param name="value">The index value from the end.</param>
        </member>
        <member name="P:System.Index.Value">
            <summary>Returns the index value.</summary>
        </member>
        <member name="P:System.Index.IsFromEnd">
            <summary>Indicates whether the index is from the start or the end.</summary>
        </member>
        <member name="M:System.Index.GetOffset(System.Int32)">
            <summary>Calculate the offset from the start using the giving collection length.</summary>
            <param name="length">The length of the collection that the Index will be used with. length has to be a positive value</param>
            <remarks>
            For performance reason, we don't validate the input length parameter and the returned offset value against negative values.
            we don't validate either the returned offset is greater than the input length.
            It is expected Index will be used with collections which always have non negative length/count. If the returned offset is negative and
            then used to index a collection will get out of range exception which will be same affect as the validation.
            </remarks>
        </member>
        <member name="M:System.Index.Equals(System.Object)">
            <summary>Indicates whether the current Index object is equal to another object of the same type.</summary>
            <param name="value">An object to compare with this object</param>
        </member>
        <member name="M:System.Index.Equals(System.Index)">
            <summary>Indicates whether the current Index object is equal to another Index object.</summary>
            <param name="other">An object to compare with this object</param>
        </member>
        <member name="M:System.Index.GetHashCode">
            <summary>Returns the hash code for this instance.</summary>
        </member>
        <member name="M:System.Index.op_Implicit(System.Int32)~System.Index">
            <summary>Converts integer number to an Index.</summary>
        </member>
        <member name="M:System.Index.ToString">
            <summary>Converts the value of the current Index object to its equivalent string representation.</summary>
        </member>
        <member name="T:System.Range">
            <summary>Represent a range has start and end indexes.</summary>
            <remarks>
            Range is used by the C# compiler to support the range syntax.
            <code>
            int[] someArray = new int[5] { 1, 2, 3, 4, 5 };
            int[] subArray1 = someArray[0..2]; // { 1, 2 }
            int[] subArray2 = someArray[1..^0]; // { 2, 3, 4, 5 }
            </code>
            </remarks>
        </member>
        <member name="P:System.Range.Start">
            <summary>Represent the inclusive start index of the Range.</summary>
        </member>
        <member name="P:System.Range.End">
            <summary>Represent the exclusive end index of the Range.</summary>
        </member>
        <member name="M:System.Range.#ctor(System.Index,System.Index)">
            <summary>Construct a Range object using the start and end indexes.</summary>
            <param name="start">Represent the inclusive start index of the range.</param>
            <param name="end">Represent the exclusive end index of the range.</param>
        </member>
        <member name="M:System.Range.Equals(System.Object)">
            <summary>Indicates whether the current Range object is equal to another object of the same type.</summary>
            <param name="value">An object to compare with this object</param>
        </member>
        <member name="M:System.Range.Equals(System.Range)">
            <summary>Indicates whether the current Range object is equal to another Range object.</summary>
            <param name="other">An object to compare with this object</param>
        </member>
        <member name="M:System.Range.GetHashCode">
            <summary>Returns the hash code for this instance.</summary>
        </member>
        <member name="M:System.Range.ToString">
            <summary>Converts the value of the current Range object to its equivalent string representation.</summary>
        </member>
        <member name="M:System.Range.StartAt(System.Index)">
            <summary>Create a Range object starting from start index to the end of the collection.</summary>
        </member>
        <member name="M:System.Range.EndAt(System.Index)">
            <summary>Create a Range object starting from first element in the collection to the end Index.</summary>
        </member>
        <member name="P:System.Range.All">
            <summary>Create a Range object starting from first element to the end.</summary>
        </member>
        <member name="M:System.Range.GetOffsetAndLength(System.Int32)">
            <summary>Calculate the start offset and length of range object using a collection length.</summary>
            <param name="length">The length of the collection that the range will be used with. length has to be a positive value.</param>
            <remarks>
            For performance reason, we don't validate the input length parameter against negative values.
            It is expected Range will be used with collections which always have non negative length/count.
            We validate the range is inside the length scope though.
            </remarks>
        </member>
    </members>
</doc>
