Mise à jour contre FixUpdate contre LateUpdate

Une partie importante de l'UnityAPI est constituée par les fonctions de mise à jour, qui sont les fonctions qui s'exécutent en continu.

Unity dispose de trois types de fonctions de mise à jour: 'Update', FixedUpdate et LateUpdate.

'Update' contre FixedUpdate

La différence entre les fonctions 'Update' et FixedUpdate réside dans la fréquence à laquelle elles s'exécutent.

La fonction 'Update' s'exécute une fois par image tandis que FixedUpdate s'exécute à un rythme constant, contrôlé par la valeur "Fixed Timestamp" dans 'Project Settings' -> 'Time'.

'Update' les fonctions conviennent à la programmation de la logique du jeu, aux entrées du joueur et essentiellement à tous les calculs non physiques.

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            //Space button has been pressed
        }    
    }

D'un autre côté, les fonctions FixedUpdate conviennent aux calculs basés sur la physique, tels que le Raycasting, l'application de forces aux corps rigides ou à tout calcul qui doit être indépendant du framerate.

    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.");
        }
    }

Mise à jour vs LateUpdate

'Update' et LateUpdate sont identiques en termes de fréquence d'exécution (tous deux exécutés une fois par image), mais LateUpdate s'exécute après toutes les fonctions 'Update'.

Enfin, la fonction LateUpdate est couramment utilisée pour modifier les os du modèle animé (par exemple, faire apparaître le modèle du joueur de haut en bas) ou pour mettre en œuvre un suivi de caméra fluide.

    void LateUpdate()
    {
        //Make camera tagged 'MainCamera' look at this object transform
        Camera mainCamera = Camera.main;
        mainCamera.transform.LookAt(transform);
    }

Emporter

Chaque fonction de mise à jour a son propre cas d'utilisation.

Utilisez-les en combinaison pour mettre en œuvre une grande variété de scénarios.

Articles suggérés
Guide du MonoBehavior dans Unity
Mise en œuvre de la saisie au clavier et à la souris dans Unity
Éveillé contre départ
Utilisation du contrôleur Runtime Animator dans Unity
Liste Unity de mots clés utiles en C#
Comprendre les fonctions et les appels de méthode
Introduction au langage de script Unity C#