Si tratta delle tre funzioni basilari che vengono utilizzate per decidere il comportamento (o behaviour) dei GameObject: la prima, cioè Update() effettua periodicamente la sequenza di comandi inclusa tra le sue parentesi graffe, analogamente a ciò che fa FixedUpdate(), che invece utilizza un tempo fisico. Ricordiamo che tutto quello presente in queste funzioni viene verificato o eseguito periodicamente.
Awake() invece, per chi fosse familiare con la programmazione ad oggetti è una sorta di costruttore, ovvero viene richiamato una singola volta all'inizio, quando si decide quanto debba valere all'istante 0 una certa variabile di tipo generico.
Di seguito Awake() viene utilizzato per inizializzare il target, operazione tipica che viene fatta allo scopo di identificare la posizione del player.
Start() è simile, con la differenza che viene richiamato prima di fare la prima volta Update().