Olá, Victor! Parece que você está tendo problemas com a geração de novos obstáculos no seu jogo. Vamos tentar resolver isso juntos.
Primeiramente, é importante verificar se o obstáculo está sendo destruído corretamente ao colidir com a barreira. No seu código, você tem a função OnTriggerEnter2D(Collider2D outro)
que chama a função Destruir()
. Isso parece estar correto, considerando que você seguiu as instruções da aula.
No entanto, o problema pode estar relacionado à geração de novos obstáculos. No seu código de geração de obstáculos, você tem a seguinte lógica no método Update()
:
private void Update()
{
this.cronometro -= Time.deltaTime;
if (this.cronometro < 0) //não pode fechar aqui senão, não reinicia o crônometro
{
GameObject.Instantiate(this.manualDeInstrucoes, this.transform.position, Quaternion.identity);
this.cronometro = this.TempoParaGerar;
}
}
Aqui, você está criando uma nova instância do obstáculo sempre que cronometro
é menor que zero. Então, você redefine cronometro
para TempoParaGerar
.
Parece que o problema pode estar relacionado com a variável TempoParaGerar
. Você precisa garantir que TempoParaGerar
esteja definido para um valor que permita a geração de novos obstáculos em um intervalo de tempo adequado. Se TempoParaGerar
for muito grande, pode parecer que os obstáculos não estão sendo gerados, pois o intervalo entre as gerações é muito longo.
Outro ponto a verificar é se a instância do obstáculo está sendo criada corretamente. Verifique se this.manualDeInstrucoes
está referenciando o prefab do obstáculo corretamente. Além disso, certifique-se de que a posição de transformação (this.transform.position
) está correta para a geração do obstáculo.
Espero que essas sugestões possam te ajudar a identificar o problema. Lembre-se, a programação é um processo de tentativa e erro, então não desanime! Espero ter ajudado e bons estudos!