Atualização vs FixedUpdate vs LateUpdate

Uma parte importante da Unity API são as funções de atualização, que são as funções executadas continuamente.

Unity tem três tipos de funções de atualização: 'Update', FixedUpdate e LateUpdate.

'Update' contra FixedUpdate

A diferença entre as funções 'Update' e FixedUpdate está na frequência com que elas são executadas.

A função 'Update' é executada uma vez por quadro enquanto FixedUpdate é executada a uma taxa constante, controlada pelo valor "Fixed Timestamp" em 'Project Settings' -> 'Time'.

'Update' funções são adequadas para programar a lógica do jogo, a entrada do jogador e basicamente quaisquer cálculos não físicos.

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

Por outro lado, as funções FixedUpdate são adequadas para cálculos baseados em física, como Raycasting, aplicação de forças a corpos rígidos ou quaisquer cálculos que precisem ser independentes da taxa de quadros.

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

Atualizar versus LateUpdate

'Update' e LateUpdate são idênticos em termos de frequência de execução (ambos executados uma vez por quadro), mas LateUpdate é executado após todas as funções 'Update'.

Por último, a função LateUpdate é comumente usada para modificar ossos de modelos animados (por exemplo, fazer o modelo do jogador olhar para cima e para baixo) ou para implementar um acompanhamento suave da câmera.

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

Remover

Cada função de atualização tem seu próprio caso de uso.

Use-os em combinação para implementar uma ampla variedade de cenários.

Artigos sugeridos
Guia para MonoBehaviour em Unity
Introdução à linguagem de script Unity C#
Usando o controlador Runtime Animator no Unity
Lista de palavras-chave úteis em C#
Implementando entrada de teclado e mouse no Unity
Entendendo funções e chamadas de método
Criando instruções condicionais (if-else) no código Unity