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, asegurando que se reposicionen cuando salen de la pantalla para mantener una jugabilidad continua.
Métodos
Método Start
csharp
Propósito: Inicializa el último obstáculo y encuentra el transform del jugador.
Funcionamiento:
lastObject = startingLastObject;
: Asigna lastObject
al obstáculo inicial especificado en el Inspector;
player = FindAnyObjectByType<PlayerMVT>().transform;
: Encuentra el transform del jugador utilizando el método FindAnyObjectByType
.
Método OnBecameInvisible
csharp
Propósito: Reubica el obstáculo cuando sale de la pantalla y cumple ciertas condiciones.
Funcionamiento:
El script verifica que el jugador exista antes de continuar (if (player == null) return;
), comprueba que el obstáculo esté detrás del jugador (if (transform.position.x >= player.position.x) return;
) y evita reposicionar el mismo obstáculo consecutivamente (if (transform == lastObject) return;
).
Obtiene 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 según el número aleatorio.
Luego, actualiza la posición x en relación con el ú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;
Reubicación: Cuando un obstáculo sale de la pantalla y cumple condiciones específicas, se reubica a una distancia aleatoria delante del último obstáculo con una altura aleatoria;
Condiciones: Garantiza que los obstáculos solo se reubiquen si están detrás del jugador y no sea 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!