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.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 3.33
Random Generated Obstacles.
Stryg for at vise menuen
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.
Tak for dine kommentarer!