Olá Henrique,
Modifiquei o código da classe Carrossel para tentar escrever menos linhas de código e o jogo não funciona como deveria. Ao invés de criar variaveis e discriminá-las no metodo Awake, coloquei todas as variaveis no metodo Update, no entanto, a velocidade de movimento do cenário aumenta e não se repete dando o efeito de jogo continuo. Não entendi porque isto acontece. Apesar do metodo Awake ser diferente do metodo Update, todas as variaves na classe e no metodo awake são chamadas no metodo update. Somente inseri tudo no metodo Update.
Segue abaixo o metodo normal e o que modifiquei este como comentário.
public class Carrossel : MonoBehaviour {
public float velocidade;
private Vector3 posicaoInicial;
private float tamanhoRealDaImagem;
private void Awake()
{
posicaoInicial = transform.position;
tamanhoRealDaImagem = GetComponent<SpriteRenderer>().size.x;
float escala = transform.localScale.x;
tamanhoRealDaImagem = tamanhoRealDaImagem * escala;
}
void Update()
{
float deslocamento = Mathf.Repeat(velocidade * Time.time, tamanhoRealDaImagem);
transform.position = posicaoInicial + Vector3.left * deslocamento;
}
/*
public float velocidade;
void Update()
{
float deslocamento = Mathf.Repeat(velocidade * Time.time, GetComponent<SpriteRenderer>().size.x * transform.localScale.x);
transform.position += Vector3.left * deslocamento;
}
*/
}