Actualización frente a Actualización fija frente a Actualización tardía

Una parte destacada de la Unity API son las funciones de actualización, que son las funciones que se ejecutan continuamente.

Unity tiene tres tipos de funciones de actualización: 'Update', FixedUpdate y LateUpdate.

'Update' vs FixedUpdate

La diferencia entre las funciones 'Update' y FixedUpdate está en la frecuencia con la que se ejecutan.

La función 'Update' se ejecuta una vez por cuadro, mientras que FixedUpdate se ejecuta a una velocidad constante, controlada por el valor "Fixed Timestamp" en 'Project Settings' -> 'Time'.

'Update' Las funciones son adecuadas para programar la lógica del juego, la entrada del jugador y básicamente cualquier cálculo no físico.

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

Por otro lado, las funciones FixedUpdate son adecuadas para cálculos basados ​​en la física, como Raycasting, aplicación de fuerzas a Rigidbodies o cualquier cálculo que deba ser independiente de la velocidad de fotogramas.

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

Actualización vs. LateUpdate

'Update' y LateUpdate son idénticos en términos de frecuencia de ejecución (ambos se ejecutan una vez por cuadro), pero LateUpdate se ejecuta después de todas las funciones 'Update'.

Por último, la función LateUpdate se usa comúnmente para modificar los huesos del modelo animado (por ejemplo, hacer que el modelo del jugador mire hacia arriba y hacia abajo) o para implementar un seguimiento fluido de la cámara.

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

Llevar

Cada función de actualización tiene su propio caso de uso.

Úselos en combinación para implementar una amplia variedad de escenarios.

Artículos sugeridos
Guía de MonoBehaviour en Unity
Usando el controlador Runtime Animator en Unity
Lista de Unity de palabras clave útiles en C#
Implementación de entrada de teclado y mouse en Unity
Comprensión de funciones y llamadas a métodos
Introducción al lenguaje de secuencias de comandos Unity C#
Creación de declaraciones condicionales (if-else) en el código de Unity