Conteúdo do Curso
Jogo de Luta no Unity
Jogo de Luta no Unity
Obstáculos Gerados Aleatoriamente.
A classe Obstacle
gerencia os obstáculos no jogo, garantindo que eles se reposicionem quando saem da tela para manter o jogo contínuo.
Métodos
Método Start
Propósito: Inicializa o último obstáculo e encontra o transform do jogador.
Como Funciona:
lastObject = startingLastObject;
: Define o lastObject
para o obstáculo inicial especificado no Inspector;
player = FindAnyObjectByType<PlayerMVT>().transform;
: Encontra o transform do jogador usando o método FindAnyObjectByType
.
Método OnBecameInvisible
Propósito: Reposiciona o obstáculo quando ele sai da tela e atende a certas condições.
Como Funciona:
O script garante que o jogador exista antes de prosseguir (if (player == null) return;
), verifica se o obstáculo está posicionado atrás do jogador (if (transform.position.x >= player.position.x) return;
), e previne reposicionamentos consecutivos (if (transform == lastObject) return;
).
Ele recupera a posição atual do obstáculo (Vector2 position = transform.position;
), gera um número aleatório (float random = Random.Range(0, 100);
), e ajusta a posição y do obstáculo com base no número aleatório.
Em seguida, atualiza a posição x em relação ao último obstáculo (position.x = lastObject.position.x + Random.Range(6f, 10f);
), e atualiza lastObject
para se referir ao obstáculo atual (lastObject = transform;
).
Resumo
- Inicialização: Define o último obstáculo inicial e encontra o jogador;
- Reposicionamento: Quando um obstáculo sai da tela e atende a condições específicas, ele é reposicionado a uma distância aleatória à frente do último obstáculo com uma altura aleatória;
- Condições: Garante que os obstáculos sejam reposicionados apenas se estiverem atrás do jogador, e não o mesmo obstáculo repetidamente.
Esta configuração permite um fluxo contínuo de obstáculos no jogo, mantendo o desafio e a variedade para o jogador.
Obrigado pelo seu feedback!