Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Y não está variando nos objetos gerados com o geradorDeObstaculos

Olá. Vi que algumas pessoas estão com este problema tbm. Fiz o código de acordo com o curso e ao colocar o prefab na cena, a altura do obstáculo varia (somente do prefab colocado na cena), porém, os outros objetos instanciados no geradorDeObstaculso não variam a altura. Será que isso é algum problema devido à alguma atualização do Unity?

2 respostas

refiz as aulas, refiz do zero o código e testei novamente, o erro persistia. Então resolvi continuar o curso e ir até o final. No final do curso, baixei o projeto final e executei no Unity, e o problema persiste. Então, cheguei a conclusão de que é alguma mudança no Unity que gerou esse problema, pois comparei meu código com o do projeto final e estão idênticos. Consegui solucionar o problema desta forma. removi o método Awake do Script Obstaculo, e alterei o script do geradorDeObstaculos, somente o método update, o deixando assim:

void Update () {
        posicao = new Vector2 (this.transform.position.x, Random.Range(alturaMinimaY, AlturaMaximaY));
        this.cronometro -= Time.deltaTime;
        if (this.cronometro < 0) {
            GameObject.Instantiate (this.objetoGerado, posicao , Quaternion.identity);

            this.cronometro = this.tempoParaGerar;
        }
    }
solução!

Oi Luan, tudo bom? Realmente o método Translate da Unity não funciona mais da mesma maneira que está no curso. Infelizmente a Unity mudou a API e esse método não funciona mais.

Sua solução é boa pois já cria o objeto na posição que ele deve ficar e com isso evitar computação adicional no método awake.