Basic Action

This state is a general action that plays an animation then returns to idle. It could potentially be used for other actions, but it is currently only used for attacks.

The script is very simple, but unlike most other states it uses a [SerializeReference] field so that any ITransitionWithEvents can be chosen for the animation (thanks to Animancer's Polymorphic Drawer system):

public class BasicActionState : AttackState
{
    [SerializeReference] private ITransitionWithEvents _Animation;

    protected virtual void Awake()
    {
        _Animation.Events.OnEnd += Character.StateMachine.ForceSetDefaultState;
    }

    public override void OnEnterState()
    {
        base.OnEnterState();
        Character.Animancer.Play(_Animation);
    }
}
Inspector Video
Enemies use this state for their attacks by selecting an AttackTransition for the Animation.
The Player also uses it for their throwing attacks by selecting a ProjectileAttackTransition for the Animation.