Course Content
Fighting Game in Unity
Fighting Game in Unity
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
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
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.
Everything was clear?