Tutorial: Entendendo o que é o DeltaTime

Neste tutorial vamos aprender o que é o DeltaTime, sua importância e como utilizá-lo.

Vamos lá!

DeltaTime

Assim como aprendemos nas aulas de física, o termo delta(Δ) indica a diferença ou intervalo entre dois valores . Por exemplo, o cálculo da velocidade de um objeto é igual a v = Δs/Δt, onde o Δs é a distância percorrida e Δt é o intervalo tempo que levou para percorrer a distância.

Note que no exemplo acima temos o Δt que nada mais é o deltaTime. No caso de desenvolvimento de jogos, o deltaTime nos diz quanto tempo levou para o computador carregar o próximo frame do jogo.

Importância

O deltaTime é importante para várias coisas, como por exemplo:

  • Realizar tarefas cronometradas: por exemplo, rodar uma animação por exatos 10 segundos;
  • Manter a velocidade constante independente da taxa de quadros por segundo, já que cada frame leva um tempo diferente para renderizar, pois depende de vários cálculos e ações que devem ser tradadas;

deltatime

  • Calcular a taxa de quadros por segundo (FPS).

Como usar

No Unity, o deltaTime é o intervalo de tempo entre um Update e outro. Para usá-lo, você pode usar Time.deltaTime. Abaixo está um exemplo de código usando o deltaTime:

using UnityEngine;
using System.Collections;

public class UsingDeltaTime : MonoBehaviour
{
    public float speed = 8f; 
    public float countdown = 3.0f;

    
    void Update ()
    {
        countdown -= Time.deltaTime;
        if(countdown <= 0.0f)
            light.enabled = true;
        
         if(Input.GetKey(KeyCode.RightArrow))
            transform.position += new Vector3(speed * Time.deltaTime, 0.0f, 0.0f);
    }   
}

Neste exemplo, temos uma luz que é ativada depois de 3 segundos. Este código é representado pela variável countdown = 3.0f onde dizemos quanto tempo vai levar para a luz acender.

O countdown -= Time.deltaTime reduz do valor do countdown o valor do deltaTime e quando countdown for menor que 0, a luz é ativada.

Outra coisa que esse exemplo faz é movimentar um objeto no eixo X. Note que temos um speed * Time.deltaTime. Ele garante que o objeto vai ter uma velocidade constante. Se você remover o deltaTime do cálculo, o objeto se movimentará diferentes distâncias a cada segundo.

 

É isso aí, pessoal! Espero que tenham entendido o que é o deltaTime e sua importância. Se quiserem saber mais, aqui está um link para o tutorial do Unity (em inglês): https://unity3d.com/learn/tutorials/topics/scripting/delta-time.

Abraços e até mais!

Filipe Leal

Filipe Leal

Bacharel em Ciência da Computação pela UDESC e certificado como Microsoft Specialist. Atualmente trabalha como programador na Basecorp Learning Systems. Reside em Edmonton - Canadá. Faixa preta com 1o. grau em Pa-kua, tem preferência por jogos de Ação/Aventura, RPG, Luta e Party Games. Seu jogo favorito é The Legend of Zelda - Ocarina of Time.

Send this to a friend