Oppdatering vs LateUpdate

I Unity brukes oppdaterings- og LateUpdate-funksjonene vanligvis til å oppdatere atferden til objekter i en scene, og selv om de tjener lignende formål, er det viktige forskjeller mellom to.

'Update'

Funksjonen 'Update' kalles én gang per ramme og brukes til de fleste generelle oppgaver, for eksempel input-håndtering og objekt bevegelse. Det er viktig å merke seg at 'Update' ikke er bildefrekvensavhengig, noe som betyr at den kan variere i utførelsestid avhengig av ytelsen.

void Update()
{
    // Input handling
    float horizontalInput = Input.GetAxis("Horizontal");
    float verticalInput = Input.GetAxis("Vertical");
    
    // Movement
    Vector3 movement = new Vector3(horizontalInput, 0, verticalInput);
    transform.Translate(movement * speed * Time.deltaTime);
    
    // General-purpose tasks
    // ...
}

I eksemplet ovenfor henter vi input fra den horisontale og vertikale aksen og bruker den til å kontrollere objektets bevegelse. Metoden 'Translate' brukes til å flytte objektet i den angitte retningen med konstant hastighet. Generelle oppgaver kan også utføres innenfor funksjonen 'Update'.

'LateUpdate'

'LateUpdate'-funksjonen kalles også én gang per ramme, men den utføres etter at alle funksjonene 'Update' er fullført. Det brukes ofte for å sikre at andre oppdateringer, som objekt bevegelse eller animasjon, er fullført før du utfører ytterligere handlinger som avhenger av disse oppdateringene.

void LateUpdate()
{
    // Camera follow
    Vector3 desiredPosition = target.position + offset;
    transform.position = Vector3.Lerp(transform.position, desiredPosition, smoothness);
    
    // Additional actions after other updates
    // ...
}

I eksemplet ovenfor brukes funksjonen 'LateUpdate' for å jevnt følge et målobjekt med et kamera. Det sikrer at kameraets posisjon oppdateres etter at målets bevegelse er behandlet i 'Update' funksjonene. Ytterligere handlinger som avhenger av objektets oppdaterte posisjon kan også utføres innen 'LateUpdate'.

'Update' vs 'LateUpdate'

Viktige forskjeller mellom funksjonene 'Update' og LateUpdate:

  • 'Update' kalles først i rammen, etterfulgt av LateUpdate.
  • 'Update' er egnet for de fleste generelle oppgaver, inkludert inndatahåndtering, objekt bevegelse og ikke-kamerarelaterte operasjoner.
  • LateUpdate brukes ofte til kamerarelaterte oppgaver, for eksempel jevn følge et målobjekt eller utføre handlinger avhengig av andre oppdateringer.
  • Å bruke LateUpdate bidrar til å sikre at handlinger som er avhengige av andre oppdateringer skjer etter at disse oppdateringene er behandlet.

Konklusjon

Det er verdt å merke seg at både 'Update' og 'LateUpdate' kan eksistere side om side i det samme skriptet, noe som gjør det mulig å skille forskjellige typer oppdateringer. Å forstå forskjellene og bruke den passende funksjonen i hver kontekst bidrar til å oppnå ønsket oppførsel i Unity-prosjektene.

Foreslåtte artikler
Oppdatering vs FixedUpdate vs LateUpdate
Sammenligning av LateUpdate og FixedUpdate i Unity
Oppdatering vs FixedUpdate
Lag en GrabPack i Unity Inspirert av Poppy Playtime
Skape en kuletidseffekt i Unity
Opprette interaktive objekter i Unity
Implementering av kinetiske interaksjoner i enhet