The Patrol state
The first of the three states to implement for the NPC AI is the Patrol State. In the previous chapter, we configured an animated patrol object, which the NPC should follow continuously during this state. The patrol object moves around the level from a predefined animation asset, changing from one position to the next. However, previously, the NPC simply followed this object without end, whereas the Patrol State requires the NPC to consider whether the player can be seen on its route. If it can, the state should change. To support this functionality, the Patrol State and Start function of the AI_Enemy class has been coded, as featured in the following code:
void Start() { //Get random destination GameObject[] Destinations = GameObject.FindGameObjectsWithTag("Dest"); PatrolDestination = Destinations[Random.Range(0, Destinations.Length)].GetComponent<Transform>(); //Configure starting state CurrentState = ENEMY_STATE.PATROL; } //---------...