The animator view in Unity is a little confusing, so I've added screenshots for each step.
Step 1: Set Up States
The animator system has two default states, Entry and Any State. Entry is the point that the animator starts at when the scene starts. Right click on the background and create new Empty State. I called mine "NoAnimation," but you can call it whatever makes sense to you.
Right click on this and say "Set As Layer Default State". You'll see that the arrow from the entry state goes to this new Empty state now.
Your state that has the animation now needs a way to be entered. Right click on the Empty state and select "Make Transition." Drag the arrow to your existing state. Your screen should look like this:
By default, the transition you just created will execute at the end of the animation in the no animation state. Since this takes no time, it will just automatically move. To remedy this, you need to create a trigger.
Step 2: Create A Trigger
In the parameters panel, click the add button and select Trigger.
I named my trigger "AndGo" but you should choose a name that makes sense to you.
Step 3: Hook Trigger to Transition
Now, to make the transition happen when the trigger is triggered, select the NoAnimation state and then click the transition to your animation state in the inspector view. This will open up more options about that transition.
Uncheck "Has Exit Time" and then click the plus sign under the Conditions Box. The name of your trigger should show up as a Condition.
Step 4: Add a behavior to set the trigger
Finally, you need to create a Behaviour to attach to the object that will wait 5 seconds and then trigger the transition. I achieved this with a coroutine.
public class DelayStart : MonoBehaviour
public void Start()
private IEnumerator delayThenStart()
yield return new WaitForSeconds(5f);
// get a reference to the animator on this gameObject
var animator = gameObject.GetComponent<Animator>();