Update in Unity gebruiken

De functie Update in Unity is een ingebouwde functie die één keer per frame wordt aangeroepen en vaak wordt gebruikt om de status van gameobjecten bij te werken en andere gamelogica uit te voeren. Hieronder vindt u enkele tips voor het correct gebruiken van de functie Update in de code Unity.

1. 'Time.deltaTime'

Omdat updatefuncties één keer per frame worden aangeroepen, is het belangrijk om 'Time.deltaTime' te gebruiken om ervoor te zorgen dat de updates framesnelheidsonafhankelijk zijn. Dit betekent dat de updates ongeacht de framesnelheid met dezelfde snelheid worden uitgevoerd, zodat de game zich consistent op verschillende hardware gedraagt.

Om bijvoorbeeld een object met een constante snelheid te verplaatsen, moet de bewegingsvector worden vermenigvuldigd met de 'Time.deltaTime' om ervoor te zorgen dat het object met dezelfde snelheid beweegt, ongeacht de framesnelheid:

void Update() {
    transform.position += Vector3.forward * speed * Time.deltaTime;
}

2. Vermijd dure berekeningen

Zoals eerder vermeld, is het belangrijk om, aangezien de Update eenmaal per frame wordt aangeroepen, geen dure berekeningen uit te voeren die de prestaties kunnen beïnvloeden. Als er bijvoorbeeld een complex algoritme is dat veel tijd nodig heeft om uit te voeren, is het misschien beter om het naar een aparte thread te verplaatsen of het op te splitsen in kleinere delen die over meerdere frames kunnen worden uitgevoerd.

3. Gebruik FixedUpdate voor natuurkunde

Als je in het spel met natuurkunde werkt, wordt het aanbevolen om de functie FixedUpdate te gebruiken in plaats van Update. FixedUpdate wordt aangeroepen met een vaste snelheid, die wordt bepaald door de natuurkundige tijdstap, en is ontworpen voor het uitvoeren van natuurkundige berekeningen zoals botsingsdetectie en starre lichamen beweging. Het gebruik van FixedUpdate voor natuurkundige berekeningen kan ervoor zorgen dat de spelfysica zich consistent en nauwkeurig gedraagt ​​bij verschillende framesnelheden.

4. Overweeg het gebruik van Coroutines

Als u een update wilt uitvoeren die niet aan de framesnelheid is gekoppeld, kunt u wellicht beter een Coroutine gebruiken in plaats van een update. Coroutines bieden de functionaliteit om de uitvoering van een functie voor een bepaalde tijd te onderbreken, waardoor deze vervolgens op tijd gebaseerde updates kan uitvoeren, zoals het spawnen van vijanden of het vertragen van een animatie.

IEnumerator SpawnEnemy() {
    while (true) {
        Instantiate(enemyPrefab, spawnPoint.position, Quaternion.identity);
        yield return new WaitForSeconds(spawnDelay);
    }
}

Om een ​​Coroutine te starten, roept u StartCoroutine eenvoudigweg één keer op, zoals dit:

StartCoroutine(SpawnEnemy());

Om een ​​Coroutine te stoppen, gebruikt u de StopCoroutine-methode die een verwijzing naar een Coroutine, IEnumerator of een methodenaam nodig heeft (het opslaan van een referentie van een StartCoroutine en die gebruiken om te stoppen is een voorkeursaanpak, omdat deze precies weet welk exemplaar van een Coroutine moet worden gestopt ):

Coroutine a = StartCoroutine(SpawnEnemy());

StopCoroutine(a);

Conclusie

Als u deze best practices volgt, zorgt u ervoor dat de Update-functies correct worden gebruikt in de Unity scripts.

Voorgestelde artikelen
Optimalisatietips voor eenheid
Unity Optimaliseer je spel met Profiler
Unity Audio Clip importinstellingen voor de beste prestaties
De Billboard-generator voor eenheid
De prestaties van een mobiel spel in eenheid verbeteren
Windows Server Update Services (WSUS) implementeren en gebruiken met Windows 10
Update versus LateUpdate