void CheckWaypointBehaviour(Waypoint waypoint) { Waypoint.EnemyWaypointBehaviour behaviour = waypoint.wayPointBehaviour; if (waypoint.destroyAfterUse) { waypointHandler.DestroyWaypoint(waypointHandler.curWaypointTargetIndex); } else { waypointHandler.UpdateNextWaypointTargetIndex(); } switch (behaviour) { case Waypoint.EnemyWaypointBehaviour.Continue: movement.MoveToNextWaypoint(); break; case Waypoint.EnemyWaypointBehaviour.LookAround: stateHandler.SwitchToLookAroundState(); break; default: break; } }
//Helper function to SwitchToChasingState() Waypoint CreateWaypoint(Waypoint.EnemyWaypointBehaviour behaviour, Vector3 pos) { GameObject instantiatedGO = Instantiate(new GameObject()); instantiatedGO.AddComponent <Waypoint>(); instantiatedGO.GetComponent <Waypoint>().Initialize(behaviour, pos, true); waypointHandler.waypoints.Insert(waypointHandler.curWaypointTargetIndex, instantiatedGO.GetComponent <Waypoint>()); return(instantiatedGO.GetComponent <Waypoint>()); }