Contenido del Curso
Juego de Lucha en Unity
Juego de Lucha en Unity
Obstáculos Generados Aleatoriamente.
La clase Obstacle
gestiona los obstáculos en el juego, asegurándose de que se reposicionen cuando salen de la pantalla para mantener un juego continuo.
Métodos
Método Start
Propósito: Inicializa el último obstáculo y encuentra el transform del jugador.
Cómo Funciona:
lastObject = startingLastObject;
: Establece el lastObject
al obstáculo inicial especificado en el Inspector;
player = FindAnyObjectByType<PlayerMVT>().transform;
: Encuentra el transform del jugador usando el método FindAnyObjectByType
.
Método OnBecameInvisible
Propósito: Reposiciona el obstáculo cuando sale de la pantalla y cumple ciertas condiciones.
Cómo Funciona:
El script asegura que el jugador exista antes de proceder (if (player == null) return;
), verifica que el obstáculo esté posicionado detrás del jugador (if (transform.position.x >= player.position.x) return;
), y previene el reposicionamiento consecutivo (if (transform == lastObject) return;
).
Recupera la posición actual del obstáculo (Vector2 position = transform.position;
), genera un número aleatorio (float random = Random.Range(0, 100);
), y ajusta la posición y del obstáculo basado en el número aleatorio.
Luego, actualiza la posición x relativa al último obstáculo (position.x = lastObject.position.x + Random.Range(6f, 10f);
), y actualiza lastObject
para referirse al obstáculo actual (lastObject = transform;
).
Resumen
- Inicialización: Establece el último obstáculo inicial y encuentra al jugador;
- Reposicionamiento: Cuando un obstáculo sale de la pantalla y cumple condiciones específicas, se reposiciona a una distancia aleatoria delante del último obstáculo con una altura aleatoria;
- Condiciones: Asegura que los obstáculos solo se reposicionen si están detrás del jugador, y no el mismo obstáculo repetidamente.
Esta configuración permite un flujo continuo de obstáculos en el juego, manteniendo el desafío y la variedad para el jugador.
¡Gracias por tus comentarios!