Como posso fazer um jogo 2d de corredor infinito em unity3d mudar aleatoriamente as imagens de fundo à medida que o jogador avança?
Question:
Como posso fazer um jogo 2dg em unity3d que muda aleatoriamente as imagens de fundo/ambientes do jogador à medida que o jogador progride? É um jogo de corredor infinito.
Eu tenho um monte de imagens de fundo, mas não consigo descobrir como seleccioná-las aleatoriamente 2 exibem infinadamente de tal forma que o jogo parece mudar o cenário aleatoriamente e não num padrão fixo. Qualquer orientação que eu pudesse seguir de forma a consegui-lo eficazmente??Estou a usar Unity3d
Answer:
1) São os próprios fundos feitos à mão ou aleatórios?
Se eles're aleatórios, você implementa um sistema que permite a geração automática de imagens de fundo totalmente ou semi-randomizadas.
Se eles're são ativos feitos a mão, você armazena os ativos em um array, seja como materiais ou texturas.
2) Para mudar o fundo conforme o jogador progride você tem que decidir como medir a progressão do jogador. Por exemplo, você pode acompanhar a posição do player's ao longo do eixo x ou y e definir limites. Eles podem ser fixos ou arbitrários, por exemplo, a cada 500 x unidades ou diferentes níveis podem ter um comprimento diferente, 200, 300, 100 etc.
Aponto atingindo um limite você troca de fundo.
Mas se você quiser mudar aleatoriamente, você tem duas opções simples:
-Criar um array de limites e preenchê-lo com Random.Range(intervalo mínimo, intervalo máximo) enquanto adiciona cumulativamente ao valor anterior
-Simplesmente tenha um valor para "next threshold" e aleatorize um novo valor ao atingi-lo enquanto também muda de background
3) Para manter as coisas eficientes você pode usar um ou dois conjuntos de background, para simplificar assuma-o's um plano. Como o fim de um plano está sendo alcançado, você coloca o outro plano ao lado dele e coloca o próximo plano de fundo nele. Assim você só precisa de dois conjuntos de fundo de cada vez e enquanto o outro está fora de vista você o muda para o próximo conjunto de fundo - a maneira mais simples é simplesmente mudar o material ou textura escolhendo um aleatório ou o próximo do seu conjunto.
Artigos semelhantes
- Existem alguns tutoriais para construir um jogo como o Temple Run usando o motor de jogo Unity3D, ou qualquer outro motor de jogo?
- Como criar controles para o jogador em um jogo de corredor interminável com C# para Unidade
- Por que ninguém faz jogos ao estilo Street Fighter Unity3D, ou algum tipo de jogo de luta, quando os jogos de luta são os mais fáceis de fazer?
- Porque é que as imagens autocolantes espelham imagens, enquanto as imagens da câmara traseira não espelham?