Oi Yan! Tudo bem?
No script do piso, estamos utilizando Time.time para calcular o deslocamento total do objeto desde o início do jogo. A fórmula que você mencionou, deslocamento = velocidade * Time.time, é usada para determinar o quanto o objeto deve se mover ao longo do tempo.
Vamos considerar um exemplo prático:
No início do jogo:
velocidade = 1Time.time = 1deslocamento = 1 * 1 = 1
Depois de 100 segundos:
velocidade = 1Time.time = 100deslocamento = 1 * 100 = 100
O deslocamento é a distância total que o objeto se moveu desde o início do jogo. O que pode estar causando confusão é como esse deslocamento é aplicado ao movimento do piso.
Para criar o efeito de looping contínuo, utilizamos a função Mathf.Repeat(). Essa função limita o deslocamento ao tamanho da imagem do piso, fazendo com que ele "volte" para a posição inicial quando ultrapassa seu próprio tamanho. A fórmula fica assim:
float deslocamento = Mathf.Repeat(this.velocidade * Time.time, this.tamanhoRealDaImagem);
this.transform.position = this.posicaoInicial + Vector3.left * deslocamento;
Aqui, Mathf.Repeat() garante que deslocamento nunca ultrapasse tamanhoRealDaImagem. Então, mesmo que Time.time continue aumentando, deslocamento será sempre um valor entre 0 e tamanhoRealDaImagem. Isso cria a ilusão de um piso infinito.
Espero que isso ajude a esclarecer como o tempo e a velocidade estão sendo usados no seu código.
Bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.