Random Generated Obstacles.
- , opens subtitles settings dialogsubtitles settings
- subtitles off
- , selectedEnglish Captions
- 2x
- 1.5x
- , selected1x
- 0.5x
This is a modal window.
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
The Obstacle
class manages obstacles in the game, ensuring they reposition themselves when they go off-screen to maintain continuous gameplay.
Methods
Start Method
csharp912345private 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
csharp9912345678910111213141516171819202122private 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