2
respostas

Não utilizar variação randomica.

Gostaria de saber como faço para não utilizar a expressão abaixo e no lugar dela utilizar um array com as posições já pre-definidas ao invés de utilizar eles randomicamente.

Random.Range(-variacaoDaPosicaoY, variacaoDaPosicaoY))

Tentei utilizar o seguinte código, porém sem sucesso:

float[] fase1 = { 2, 2, 2, -2, 0 };        
        foreach(float x in fase1)
        {
            transform.Translate(Vector3.left * x);

            Debug.Log(x);            
        }
2 respostas

Oi Benildo, tudo bom?

Para usarmos posições pré-definidas na geração de obstáculos vc precisa ter elas configuradas em alguma variável dentro do escopo da sua classe. Nesse caso eu usaria uma Queue para armazenar esses dados. Assim vc vc tem certeza que uma vez que o valor for usado ele não será repetido. Já que o método dequeue retira o valor da fila.

Pelo que eu vi vc está está fazendo isso dentro do array fase1 . Porém vc está iterando no array inteiro e chamando o Translate para um obstáculo. Imagino que no seu caso vc até está conseguindo mover os obstaculos, mas acaba que todos ficam na mesma posição final, correto?

Se for isso, o seu erro é de lógica. O que vc precisa fazer é colocar cada valor dentro do seu array fase1 para um único obstáculo e o próximo valor do array para o próximo obstáculo. Como vc quer um controle mais fino entre todos os obstáculos, essa lógica tem que estar no gerador de obstáculos e não no obstáculo em si.

Ai no momento em que vc gera um novo obstáculo, vc vê qual é a a próxima posição no array fase1 ( A Fila aqui ajuda bastante pq vc não precisa ficar controlando o índice do array) e chama um o tranlate naquele obstáculo q foi criado.

Ainda não consegui resolver esse problema, acho que me falta experiência e imaginação...kkkkkkkkk

Lá no Update do GeradorDeObstaculos, na linha do gameObject.Instantiate, o segundo parametro é a posição. Eu crio um método depois dele chamado fase, que retorna os objetos do array e depois chamo ele lá nessa posição?

Tem como tu me dar um exemplo pratico de uma solução para a criação se ser randomizada?

Muito obrigado pela ajuda!!!!