2
respostas

Conceito do mathf.repeat

deslocamento = Mathf.Repeat(velocidade * Time.time, tamanhoRealImagem);
transform.position = posicaoInicial + Vector3.left * deslocamento;

A minha dúvida é: o valor do deslocamento vai aumentando com o tempo, por conta da velocidade * Time.time, por que isso nao altera a velocidade no transform.position? como ele se mantem sempre com a velocidade 5 que declarei?

2 respostas

Obrigado!

Oi, Marcelo!! Tudo bem?

Peço desculpas pela demora em te responder.

No código que você compartilhou, a função Mathf.Repeat é responsável por fazer o deslocamento "repetir" dentro de um determinado intervalo.

O valor do deslocamento é calculado multiplicando a velocidade pelo tempo atual (Time.time) e, em seguida, aplicando a função Mathf.Repeat, que garante que o valor permaneça dentro do intervalo definido por tamanhoRealImagem.

No entanto, o valor do deslocamento não afeta diretamente a velocidade no transform.position. Isso ocorre porque, no código, o deslocamento é usado para calcular a posição final do objeto, adicionando-o à posição inicial (posicaoInicial) e multiplicando por Vector3.left.

Como o valor da velocidade não depende do deslocamento (mas sim o contrário), ela continuará a mesma (igual a 5) durante toda a movimentação!

Marcelo, espero que tenha ficado mais claro! Caso tenha interesse em aprofundar seus conhecimentos em Unity, deixo como dica de estudo explorar a formação abaixo:

Espero ter ajudado!

Abraço.