Build a 2D Platformer using Unity and C#

Lesson 7 of 7

Final Project: Finish Your Platformer

You now have every piece: a responsive player controller, a tile-based level, a camera that follows smoothly, animated movement, collectibles and enemies, and a UI wired to game state. Put it all together into one complete, playable level.

Requirements

  1. Combine the PlayerController, PlayerAnimation, and CameraFollow scripts from earlier lessons onto a player that can run, jump, and be tracked by the camera across a full level.
  2. Build a level with a Tilemap, including solid ground and at least one gap the player must jump across.
  3. Place at least 5 coins (using the Coin script) and update the score UI live as they're collected.
  4. Add at least one patrolling enemy that damages the player on contact, and a PlayerHealth script that ends the run (e.g. reloads the level) when health reaches 0.
  5. Show the level-complete panel when the player reaches an end-of-level trigger zone, and pause gameplay while it's shown.

Stretch goals

  • Add a second enemy type that doesn't patrol, but instead activates and chases the player once it enters an OnTriggerEnter2D "aggro" radius.
  • Add a simple checkpoint system: touching a checkpoint updates where the player respawns after taking too much damage, instead of always restarting from the beginning.
  • Swap your hand-written CameraFollow for Unity's Cinemachine package, and compare how much of your script it replaces.

Submit a link to your finished project (a repo or gist) below, an instructor will review it before you can mark this lesson complete. Good luck! 🚀

This lesson ends in a project. Build it on your own machine, there's nowhere to submit it here, but the brief above is everything you need.