Uppdatering vs LateUpdate

I Unity används funktionerna Uppdatering och LateUpdate vanligtvis för att uppdatera beteendet för objekt i en scen, och medan de tjänar liknande syften, finns det viktiga skillnader mellan de två.

'Update'

Funktionen 'Update' anropas en gång per bildruta och används för de flesta allmänna uppgifter, såsom indata-hantering och objekt rörelse. Det är viktigt att notera att 'Update' inte är beroende av bildhastighet, vilket innebär att den kan variera i körningstid beroende på prestanda.

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 exemplet ovan hämtar vi input från de horisontella och vertikala axlarna och använder den för att styra objektets rörelse. Metoden 'Translate' används för att flytta objektet i angiven riktning med konstant hastighet. Allmänna uppgifter kan också utföras inom funktionen 'Update'.

'LateUpdate'

Funktionen 'LateUpdate' anropas också en gång per bildruta, men den exekveras efter att alla funktioner 'Update' har slutförts. Det används vanligtvis för att säkerställa att andra uppdateringar, som objekt rörelse eller animering, har slutförts innan ytterligare åtgärder som beror på dessa uppdateringar utförs.

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

I exemplet ovan används funktionen 'LateUpdate' för att smidigt följa ett målobjekt med en kamera. Det säkerställer att kamerans position uppdateras efter att målets rörelse har bearbetats i 'Update'-funktionerna. Ytterligare åtgärder som beror på objektets uppdaterade position kan också utföras inom 'LateUpdate'.

'Update' mot 'LateUpdate'

Viktiga skillnader mellan funktionerna 'Update' och LateUpdate:

  • 'Update' anropas först i ramen, följt av LateUpdate.
  • 'Update' är lämplig för de flesta allmänna uppgifter, inklusive inmatningshantering, objekts rörelse och icke-kamerarelaterade operationer.
  • LateUpdate används ofta för kamerarelaterade uppgifter, som att smidigt följa ett målobjekt eller utföra åtgärder beroende på andra uppdateringar.
  • Att använda LateUpdate hjälper till att säkerställa att åtgärder som är beroende av andra uppdateringar inträffar efter att dessa uppdateringar har bearbetats.

Slutsats

Det är värt att notera att både 'Update' och 'LateUpdate' kan samexistera i samma skript, vilket gör det möjligt att separera olika typer av uppdateringar. Att förstå skillnaderna och använda lämplig funktion i varje sammanhang hjälper till att uppnå önskat beteende i Unity-projekten.

Föreslagna artiklar
Uppdatering vs FixedUpdate vs LateUpdate
Uppdatering vs FixedUpdate
Jämför LateUpdate och FixedUpdate i Unity
Skapa ett GrabPack i Unity Inspirerad av Poppy Playtime
Skapa en kultidseffekt i Unity
Skapa interaktiva objekt i Unity
Implementering av kinetiska interaktioner i enhet