https://github.com/nawodyaishan/gamedev-space-adventure
2D Sci-Fi Space shooter video game developed using Unity Game Engine and C# Programming Language
https://github.com/nawodyaishan/gamedev-space-adventure
2d-shooter csharp csharp-game csharp-script game-development gamedev unity2d
Last synced: 3 months ago
JSON representation
2D Sci-Fi Space shooter video game developed using Unity Game Engine and C# Programming Language
- Host: GitHub
- URL: https://github.com/nawodyaishan/gamedev-space-adventure
- Owner: nawodyaishan
- Created: 2022-03-31T18:29:09.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-13T22:35:52.000Z (over 2 years ago)
- Last Synced: 2025-03-15T05:28:40.343Z (7 months ago)
- Topics: 2d-shooter, csharp, csharp-game, csharp-script, game-development, gamedev, unity2d
- Language: C#
- Homepage: https://nawodyaishan.github.io/
- Size: 36 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Space Shooter Adventure
2D Sci-Fi space shooter video game developed using Unity Game Engine and C# programming language. Developed using "The Most Comprehensive Guide To Unity Game Development Vol 1" course by Awesome Tuts.
## Player_Scripts
### PlayerMoveKeyboard.cs
This script handles the movement of the player using the keyboard.
#### Public Variables
- **speed:** The speed of the player's movement. Default value is 600f.
#### Private Variables
- **myBody:** The rigidbody component of the player.
#### Private Methods
- **Awake():** Gets the rigidbody component of the player.
- **FixedUpdate():** Calls the HandleMovement() method in every fixed update.
- **HandleMovement():** Handles the movement of the player based on the input keys.### EngineFires.cs
This script handles the engine fires of the player's ship.
#### Public Variables
- **engineFires:** The particle system components of the engine fires.
- **enginePower:** The power of the engine fires. Default value is 10.#### Private Methods
- **Update():** Calls the HandleFireEngine() method in every update.
- **HandleFireEngine():** Handles the emission of engine fire particles based on the input keys.
- **EmiEngineFireParticle(int engineIndex, int enginePower):** Emits engine fire particles for the given engine index and power.## Gameplay_Controller
### Collector.cs
This script handles the collision of the player's projectiles, meteors, and collectibles.
#### Private Methods
- **OnTriggerEnter2D(Collider2D collision):** Destroys the collided object if it's a meteor or a collectible. Sets the collided object to inactive if it's a projectile.
---
## EnemyMovement
### Public Fields
- `bool moveOnX`: Whether the enemy should move on the X-axis or not.
- `bool moveOnY`: Whether the enemy should move on the Y-axis or not.
- `float minX`: The minimum position of the enemy on the X-axis.
- `float maxX`: The maximum position of the enemy on the X-axis.
- `float minY`: The minimum position of the enemy on the Y-axis.
- `float maxY`: The maximum position of the enemy on the Y-axis.
- `float moveSpeed`: The speed at which the enemy moves.
- `float horizontalMovementTreshold`: The maximum distance the enemy can move from its initial position on the X-axis.
- `float verticalMovementTreshold`: The maximum distance the enemy can move from its initial position on the Y-axis.### Private Fields
- `Vector3 tempMovement_Horizontal`: A temporary vector used to store the enemy's position while moving horizontally.
- `Vector3 tempMovement_Vertical`: A temporary vector used to store the enemy's position while moving vertically.
- `bool moveLeft`: Whether the enemy is moving left or not.
- `bool moveUp`: Whether the enemy is moving up or not.### Private Methods
- `void HandleEnemyMovementHorizontal()`: Handles the enemy's horizontal movement.
- `void HandleEnemyMovementVertical()`: Handles the enemy's vertical movement.## EnemyMovementInPoints
### Public Fields
- `Transform[] movementPoints`: An array of points the enemy can move towards.
- `float moveSpeed`: The speed at which the enemy moves.
- `bool moveRandomly`: Whether the enemy should move towards a random point or not.### Private Fields
- `int currentMoveIndex`: The index of the current point the enemy is moving towards.
- `Vector3 targetPosition`: The position of the current point the enemy is moving towards.### Private Methods
- `void SetTargetPosition()`: Sets the target position to the next point in the `movementPoints` array.
- `void SelectRandomPosition()`: Selects a random point from the `movementPoints` array as the target position.
- `void SelectPointToPointPosition()`: Selects the next point in the `movementPoints` array as the target position.## EnemyMovementRandom
### Public Fields
- `float minX`: The minimum position of the enemy on the X-axis.
- `float maxX`: The maximum position of the enemy on the X-axis.
- `float minY`: The minimum position of the enemy on the Y-axis.
- `float maxY`: The maximum position of the enemy on the Y-axis.
- `float moveSpeed`: The speed at which the enemy moves.### Private Fields
- `Vector3 targetPosition`: The position the enemy is moving towards.### Private Methods
- `void SetTargetPosition()`: Sets the target position to a random position within the `minX`, `maxX`, `minY`, and `maxY` bounds.### `TagManager` class
#### `PLAYER_PROJECTILE_HOLDER_TAG`
The tag for the object that holds all of the player's projectiles.
#### `ENEMY_PROJECTILE_HOLDER_TAG`
The tag for the object that holds all of the enemy's projectiles.
#### `PRIJECTILE_TAG`
The tag for all types of projectiles in the game.
#### `ENEMY_TAG`
The tag for all enemies in the game.
#### `PLYAER_TAG`
The tag for the player object in the game.
#### `METEOR_TAG`
The tag for all meteors in the game.
#### `UNTAGGED_TAG`
The tag for all objects in the game that do not have a tag assigned to them.
#### `PLAYER_HEALTH_SLIDER_TAG`
The tag for the player's health slider object.
#### `COLLECTABLE_TAG`
The tag for all collectable objects in the game.
### `MeteorMovement` class
This class handles the movement and rotation of a meteor object.
#### `minSpeed`
The minimum speed the meteor can move at.
#### `maxSpeed`
The maximum speed the meteor can move at.
#### `speedX`
The current speed of the meteor on the X axis.
#### `speedY`
The current speed of the meteor on the Y axis.
#### `moveOnX`
A boolean that determines whether the meteor can move on the X axis.
#### `moveOnY`
A boolean that determines whether the meteor can move on the Y axis.
#### `minRotationSpeed`
The minimum rotation speed of the meteor.
#### `maxRotationSpeed`
The maximum rotation speed of the meteor.
#### `rotationSpeed`
The current rotation speed of the meteor.
#### `tempMovement`
A Vector3 that holds the current position of the meteor.
#### `zRotation`
The current rotation of the meteor on the Z axis.
#### `Awake()`
A Unity method that is called when the script instance is being loaded.
#### `Start()`
A Unity method that is called before the first frame update.
#### `Update()`
A Unity method that is called once per frame. It updates the movement and rotation of the meteor.
#### `RotateMeteor()`
A method that rotates the meteor based on its rotation speed.
#### `HandleMovementY()`
A method that handles the movement of the meteor on the Y axis.
#### `HandleMovementX()`
A method that handles the movement of the meteor on the X axis.
### `MeteorSpawner` class
This class handles the spawning of meteor objects.
#### `meteors`
An array of meteor objects to spawn.
#### `minX`
The minimum X position where the meteor can spawn.
#### `maxX`
The maximum X position where the meteor can spawn.
#### `minSpawnNo`
The minimum number of meteors to spawn.
#### `maxSpawnNo`
The maximum number of meteors to spawn.
#### `minSpawnInterval`
The minimum interval between each wave of meteors.
#### `maxSpawnInterval`
The maximum interval between each wave of meteors.
#### `randomSpawnNumber`
The number of meteors to spawn in the current wave.
#### `randomSpawnPosition`
A Vector3 that holds the random position where the meteor will spawn.
#### `Awake()`
A Unity method that is called when the script instance is being loaded.
#### `Start()`
A Unity method that is called before the first frame update. It starts spawning meteors.
#### `Update()`
A Unity method that is called once per frame.
#### `SpawnMeteors()`
A method that spawns a wave of meteors. It is called recursively with a random interval between each wave.