Comment utiliser la mise à jour dans Unity

La fonction de mise à jour dans Unity est une fonction intégrée qui est appelée une fois par image et est couramment utilisée pour mettre à jour l'état des objets du jeu et effectuer autre logique de jeu. Vous trouverez ci-dessous quelques conseils pour utiliser correctement la fonction Mettre à jour dans le code Unity.

1. 'Time.deltaTime'

Étant donné que les fonctions de mise à jour sont appelées une fois par image, il est important d'utiliser 'Time.deltaTime' pour s'assurer que les mises à jour sont indépendantes de la fréquence d'images. Cela signifie que les mises à jour s'exécuteront à la même fréquence, quelle que soit la fréquence d'images, garantissant que le jeu se comporte de manière cohérente sur différents matériels.

Par exemple, pour déplacer un objet à une vitesse constante, le vecteur de mouvement doit être multiplié par le 'Time.deltaTime' pour s'assurer que l'objet se déplace à la même vitesse quelle que soit la fréquence d'images:

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

2. Évitez les calculs coûteux

Comme mentionné précédemment, étant donné que la mise à jour est appelée une fois par image, il est important d'éviter d'effectuer des calculs coûteux qui pourraient avoir un impact sur les performances. Par exemple, s'il existe un algorithme complexe qui prend beaucoup de temps à s'exécuter, il peut être préférable de le déplacer vers un thread séparé ou de le diviser en morceaux plus petits pouvant être exécutés sur plusieurs images.

3. Utilisez FixedUpdate pour la physique

Lorsque vous travaillez avec la physique dans le jeu, il est recommandé d'utiliser la fonction FixedUpdate au lieu de Mettre à jour. FixedUpdate est appelé à un taux fixe, qui est déterminé par le pas de temps physique, et est conçu pour gérer les calculs physiques comme la détection de collision et corps rigide mouvement. L'utilisation de FixedUpdate pour les calculs physiques peut aider à garantir que la physique du jeu se comporte de manière cohérente et précise sur différentes fréquences d'images.

4. Envisagez d'utiliser des coroutines

Pour effectuer une mise à jour qui n'est pas liée à la fréquence d'images, il peut être préférable d'utiliser une coroutine au lieu d'une mise à jour. Les coroutines fournissent la fonctionnalité permettant de suspendre l'exécution d'une fonction pendant une durée spécifiée, lui permettant ensuite d'effectuer des mises à jour temporelles telles que la génération d'ennemis ou le retardement d'une animation.

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

Pour démarrer une Coroutine, appelez simplement StartCoroutine une fois, comme ceci:

StartCoroutine(SpawnEnemy());

Pour arrêter une Coroutine, utilisez la méthode StopCoroutine qui prend une référence à une Coroutine, IEnumerator ou un nom de méthode (Stocker une référence à partir d'une StartCoroutine et l'utiliser pour arrêter est une approche préférable car elle sait exactement quelle instance d'une Coroutine arrêter ):

Coroutine a = StartCoroutine(SpawnEnemy());

StopCoroutine(a);

Conclusion

Le respect de ces bonnes pratiques garantira que les fonctions de mise à jour sont correctement utilisées dans les scripts Unity.

Articles suggérés
Unity Optimisez votre jeu à l'aide de Profiler
Conseils d'optimisation pour Unity
Le générateur de panneaux d'affichage pour Unity
Améliorer les performances d'un jeu mobile dans Unity
Paramètres d'importation de clips audio Unity pour les meilleures performances
Implémentation d'un taux de mise à jour personnalisé dans Unity
Comment activer et configurer DirectStorage dans Windows 11 pour des chargements de jeux plus rapides