# Unity Learn Game — Space Shooter (3D assets, 2D gameplay)
A small Unity learning project: a top-down space shooter built with 3D assets but played in a 2D-style perspective.
## Gameplay
- You control a spaceship within a limited play area.
- The ship can move left, right, up and down.
- While moving, the ship slightly tilts toward the movement direction to add a sense of realism.
- Asteroids spawn from random positions at the top and fall downward.
- You shoot lasers to destroy asteroids and gain score.
- When the ship is destroyed, a simple **Game Over** screen appears:
- Press **R** to restart
- Press **Q** to quit
## Controls
- Move: **WASD / Arrow Keys**
- Shoot: **Left Mouse Button**
- Restart: **R**
- Quit: **Q**
## What I practiced (learning goals)
- Unity scene setup and project structure
- C# scripting
- Prefab usage (ship, asteroids, bullets, effects)
- Collision handling using **Trigger** logic
- Randomized enemy spawning
- Basic UI (score display and game over screen)
- Audio integration (background music and sound effects)
## Audio & Visual Effects
- Background music during gameplay
- Laser sound when shooting
- Impact sound when asteroids are destroyed
- Explosion sound when the ship is hit
- Thruster / engine flame effect behind the ship
## Known Issues / TODO
This is a learning project, and some issues are intentionally left unresolved:
- The game uses **3 axes (X, Y, Z)**, which sometimes causes inconsistencies:
- Bullets may visually hit asteroids but not register collisions due to axis misalignment.
- Asteroid rotation behavior is not fully correct:
- While trying to rotate asteroids around their own axis, they previously moved in a circular path.
- After adjustments, some asteroids no longer rotate at all.
- Because the game uses **3D objects with 2D-style gameplay**, objects may occasionally drift off the intended plane.
Planned improvements:
- Lock gameplay to a single plane or migrate to a proper 2D physics setup.
- Rework asteroid rotation using correct transform or rigidbody rotation.
- Improve collision consistency between bullets and asteroids.
## Tech
- Unity (3D project with 2D-style top-down gameplay)
- C#
- Git / GitHub