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;
- 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!