Oppdatering vs FixedUpdate vs LateUpdate
En fremtredende del av Unity API er oppdateringsfunksjonene, som er funksjonene som kjører kontinuerlig.
Unity har tre typer oppdateringsfunksjoner: 'Update', FixedUpdate og LateUpdate.
'Update' vs FixedUpdate
Forskjellen mellom 'Update' og FixedUpdate funksjoner er hvor ofte de kjører.
'Update'-funksjonen kjører én gang per bilde mens FixedUpdate kjører med en konstant hastighet, kontrollert av "Fixed Timestamp"-verdien i 'Project Settings' -> 'Time'.
'Update' funksjoner er egnet for programmering av spilllogikken, spillerinndata og i utgangspunktet alle ikke-fysiske beregninger.
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
//Space button has been pressed
}
}
På den annen side er FixedUpdate funksjoner egnet for fysikkbaserte beregninger, for eksempel Raycasting, påføring av krefter på Rigidbodies, eller alle beregninger som må være framerate uavhengige.
void FixedUpdate()
{
//Use Physics Raycast to detect if there any object in front
RaycastHit hit;
if(Physics.Raycast(transform.position, transform.forward, out hit, 10))
{
Debug.Log("Object '" + hit.transform.name + "' is currently in front of this object.");
}
}
Oppdatering vs LateUpdate
'Update' og LateUpdate er identiske når det gjelder kjøringsfrekvens (begge kjøres én gang per ramme), men LateUpdate kjører etter alle 'Update' funksjoner.
Til slutt, LateUpdate-funksjonen brukes ofte til å modifisere animerte modellbein (f.eks. få spillermodellen til å se opp og ned) eller for å implementere en jevn kamerafølge.
void LateUpdate()
{
//Make camera tagged 'MainCamera' look at this object transform
Camera mainCamera = Camera.main;
mainCamera.transform.LookAt(transform);
}
Ta bort
Hver oppdateringsfunksjon har sin egen brukstilfelle.
Bruk dem i kombinasjon for å implementere en rekke scenarier.