Random Generated Obstacles.
The Obstacle class manages obstacles in the game, ensuring they reposition themselves when they go off-screen to maintain continuous gameplay.
Methods
Start Method
private void Start()
{
lastObject = startingLastObject;
player = FindAnyObjectByType<PlayerMVT>().transform;
}
Purpose: Initializes the last obstacle and finds the player's transform.
How It Works:
lastObject = startingLastObject;: Sets the lastObject to the initial obstacle specified in the Inspector;
player = FindAnyObjectByType<PlayerMVT>().transform;: Finds the player's transform using FindAnyObjectByType method.
OnBecameInvisible Method
private void OnBecameInvisible()
{
if (player == null) return;
if (transform.position.x >= player.position.x) return;
if (transform == lastObject) return;
Vector2 position = transform.position;
float random = Random.Range(0, 100);
if (random <= 50)
{
position.y = Random.Range(-2, 1);
}
else
{
position.y = Random.Range(15, 18);
}
position.x = lastObject.position.x + Random.Range(6f, 10f);
transform.position = position;
lastObject = transform;
}
Purpose: Repositions the obstacle when it goes off-screen and meets certain conditions.
How It Works:
The script ensures the player exists before proceeding (if (player == null) return;), verifies the obstacle is positioned behind the player (if (transform.position.x >= player.position.x) return;), and prevents consecutive repositioning (if (transform == lastObject) return;).
It retrieves the current obstacle position (Vector2 position = transform.position;), generates a random number (float random = Random.Range(0, 100);), and adjusts the obstacle's y-position based on the random number.
Then, it updates the x-position relative to the last obstacle (position.x = lastObject.position.x + Random.Range(6f, 10f);), and updates lastObject to refer to the current obstacle (lastObject = transform;).
Summary
- Initialization: Sets the initial last obstacle and finds the player;
- Repositioning: When an obstacle goes off-screen and meets specific conditions, it is repositioned at a random distance ahead of the last obstacle with a random height;
- Conditions: Ensures obstacles are only repositioned if they are behind the player, and not the same obstacle repeatedly.
This setup allows for a continuous flow of obstacles in the game, maintaining challenge and variety for the player.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Mi faccia domande su questo argomento
Riassuma questo capitolo
Mostri esempi dal mondo reale
Fantastico!
Completion tasso migliorato a 3.33
Random Generated Obstacles.
Scorri per mostrare il menu
The Obstacle class manages obstacles in the game, ensuring they reposition themselves when they go off-screen to maintain continuous gameplay.
Methods
Start Method
private void Start()
{
lastObject = startingLastObject;
player = FindAnyObjectByType<PlayerMVT>().transform;
}
Purpose: Initializes the last obstacle and finds the player's transform.
How It Works:
lastObject = startingLastObject;: Sets the lastObject to the initial obstacle specified in the Inspector;
player = FindAnyObjectByType<PlayerMVT>().transform;: Finds the player's transform using FindAnyObjectByType method.
OnBecameInvisible Method
private void OnBecameInvisible()
{
if (player == null) return;
if (transform.position.x >= player.position.x) return;
if (transform == lastObject) return;
Vector2 position = transform.position;
float random = Random.Range(0, 100);
if (random <= 50)
{
position.y = Random.Range(-2, 1);
}
else
{
position.y = Random.Range(15, 18);
}
position.x = lastObject.position.x + Random.Range(6f, 10f);
transform.position = position;
lastObject = transform;
}
Purpose: Repositions the obstacle when it goes off-screen and meets certain conditions.
How It Works:
The script ensures the player exists before proceeding (if (player == null) return;), verifies the obstacle is positioned behind the player (if (transform.position.x >= player.position.x) return;), and prevents consecutive repositioning (if (transform == lastObject) return;).
It retrieves the current obstacle position (Vector2 position = transform.position;), generates a random number (float random = Random.Range(0, 100);), and adjusts the obstacle's y-position based on the random number.
Then, it updates the x-position relative to the last obstacle (position.x = lastObject.position.x + Random.Range(6f, 10f);), and updates lastObject to refer to the current obstacle (lastObject = transform;).
Summary
- Initialization: Sets the initial last obstacle and finds the player;
- Repositioning: When an obstacle goes off-screen and meets specific conditions, it is repositioned at a random distance ahead of the last obstacle with a random height;
- Conditions: Ensures obstacles are only repositioned if they are behind the player, and not the same obstacle repeatedly.
This setup allows for a continuous flow of obstacles in the game, maintaining challenge and variety for the player.
Grazie per i tuoi commenti!