Game Development Reference
In-Depth Information
Calling a function at animation end
The function
OnIdleAnimCompleted
is called automatically by Unity when the
idle animation completes. The following code sample 7-4 shows how this method
is implemented:
//Event called when Idle animation is completed
public void OnIdleAnimCompleted()
{
//Stop active Idle state
StopAllCoroutines();
StartCoroutine(State_Patrol());
}
Creating the Patrol state
In the
Patrol
state, the enemy should wander the environment and look for the
player. This state can be entered from the
Idle
state, after the idle animation is
completed, and also from the
Chase
state, if the enemy loses sight of the player
during a chase. Patrol involves a looping logic. Specifically, the enemy should pick
a random destination somewhere on the navigation mesh and then travel to that
destination. When the destination is reached, the process should repeat and so
on. The only condition that causes the enemy to leave this state is a sighting of
the player, which demands a
Chase
state.