
Try out these playable demos from two of our class final projects!
Learn to make an enemy follow a waypoint path using a path script and Getposition, move towards with delta time, and deactivate at the end.
Design an object pooler in Unity to reuse inactive enemy objects, improving performance by reducing allocations and garbage collection through a reusable pool tied to a parent object.
Explore source code checkpoints for Unity tower defense, download zip files, open the project in Unity, and apply a beginner-friendly, data-driven approach to create enemy types with unique properties.
Leverage scriptable objects to store enemy stats in Unity, moving lives, damage, and speed from code into reusable data assets. Apply data driven design to define waves and spawner behavior.
Explore the observer pattern to broadcast game events and let listeners react, using a static event and Action with anime data for decoupled gameplay.
Pool projectiles per tower and shoot at the first enemy in range using a normalized direction. Move projectiles with delta time and deactivate after their duration, handling collisions and waves.
Unzip the source code pack and open it in Unity Hub to access the project at the checkpoint. Consult the How to Use Source Code lesson for local opening help.
Scale enemy health with a health multiplier tied to the wave counter, using scriptable objects for base lives and a spawner to update max lives and health bars.
Implement a resource reward system for tower defense using scriptable object data to define rewards, accumulate resources on enemy destruction, and update the UI in real time.
Unzip the source code pack and open it in Unity Hub to view the project at the current stage; see the how to use source code lesson for local setup.
Lock platform selection with a public static flag when the tower panel opens, ensuring placement on the initiating platform. Add a resource system with a read-only getter and spend method.
Learn how to create a playable standalone build of a Unity game, distribute to platforms like steam, and troubleshoot build issues across desktop, web, mobile, and beyond.
Create scriptable level data and a level manager singleton in Unity to drive per-level properties such as name, waves to win, starting resources, and lives for gameplay and UI.
Demonstrates a singleton level manager that persists across scenes to load levels by name, don't destroy on load, and replace restart logic with a load level method.
Persist the UI canvas, game manager, and level manager across scenes with don't destroy on load. Let a bootstrap main menu scene manage transitions and UI visibility.
Duplicate and customize level one, adjust the four waypoints path and background, and wire a level manager, scene list, and next level button to load the next level.
Configure a one-shot particle burst for the mission complete screen, tuning duration, start speed, size over lifetime, and velocity, and trigger it once per mission event via the UI controller.
Move mission complete logic to after defeating all enemies to prevent audio from playing twice. Refine the ui and particle tweaks for smoother level transitions.
Unzip the downloaded source code pack and open it in Unity Hub to load the project at P16. Refer to the how to use source code lesson for local opening.
Apply a global custom font across all UI text with Text Mesh Pro assets and a font manager, and prevent raycast hits to fix touch input bugs.
Learn how to implement a persistent spawner across scenes with don't destroy on load, reset waves and pools on scene change, and pass the path to enemies for efficient spawning.
Unzip the source code pack and open it in Unity Hub to view project at the current stage; consult the earlier lesson 'How to Use Source Code' for local setup.
Define per-level waves using level data assets instead of a persistent spawner, enabling dragon, orc, and kaiju waves per level, with user interface updates and correct endless mode handling.
Create a space UI by swapping backgrounds, setting sorting layers, and styling panels, buttons, and health bars. Update prefabs, adjust colors, and implement the main menu pause behavior.
Learn to set up sprites and prefabs in Unity, apply sprite editors for 130x130 and 500x500 frames, and implement a float in space script using Perlin noise for smooth motion.
Create an animated path highlight for a tower defense game by using a line renderer to connect waypoints and animate the texture offset with a path material and transparent shader.
Create a particle material with a transparent unlit shader, apply the particle texture, and set the URP 2D renderer transparency sort to vertical axis for correct layering.
Create swarming squid enemies by building variants, attaching sprites, and configuring prefabs, health, and waves; use object pools and a spawner, while rotating only the enemy sprite to match movement.
Create a locust morph enemy that cycles between slow and fast movement, swapping normal and alternate sprites. Use the sprite editor for four skins and a speed up periodically coroutine.
Create a random animator state picker in Unity to cycle between watcher idle, reload, and scan animations using a script, sprite sheets, and animator states for dynamic tower defense visuals.
Unzip the downloaded source code and open it in Unity Hub to load the current checkpoint; refer to the How to use source code lesson for local setup help.
Create hundreds of pixel art characters for a tower defense game using an online generator, customize bodies, wings, armor, and weapons, then import sprite sheets into Unity.
Organize enemy prefabs, create four directional pixel art walking animations, and drive them with a two-dimensional blend tree using move x and move y in Unity.
Duplicate prefabs to create new enemies, assign sprite sheet frames, build four walk animations, replace with an animator override controller, and wire through spawner, enemy data, wave, and level assets.
Open the downloaded source code pack in Unity Hub to load the project at the current stage, and consult the source code lesson for local setup help.
Distribute platforms around the expanded path and place tall pixel-art towers, then add environment sprites of mushrooms and plants with bottom pivots for proper layering.
Download and unzip the source code pack, then open in Unity Hub to match the current project stage and consult the 'How to Use Source Code' lesson for help.
Create a molten lava world for a tower defense game in Unity by wiring scriptable object tower data to UI cards, setting sprites, lighting, pixel art level, and enemy waves.
Design a thick rainforest jungle level by building background and grass tile maps, placing ground objects and trees on proper sorting layers, and testing with platforms and enemy waves.
Create a scene and build a fog particle system in Unity. Tune lifetime, size, velocity, shape, and color over lifetime, then save as a fog prefab for the rainforest level.
Design diverse pixel art characters for your games using the LPC sprite generator, preview animations, and export pngs with transparent backgrounds or share dynamic URLs for rapid prototyping.
The Ultimate Tower Defense Formula is your complete guide to creating a fully functional, polished 2D tower defense game using Unity and C#.
Have you ever wanted to build your own 2D game in Unity but didn’t know where to start, or felt overwhelmed by all the moving parts? You’re not alone. A lot of beginners jump into Unity, create a quick prototype, and then get stuck when it comes to actually finishing and polishing a full game. That’s exactly what this course is designed to solve.
In this hands-on class, you and I will build a complete 2D tower defense game step by step, from a blank Unity project all the way to a finished, polished game that you can share with your friends, or even publish online for the world to play. Along the way, you’ll learn real-world skills like creating towers and enemies, spawning waves, balancing difficulty, and designing modular systems with ScriptableObjects and object pooling.
Once the gameplay is working, we’ll move into the fun part: making your project look and feel like a real game. You’ll add a custom UI, animations, art, and particle effects that bring your tower defense game to life.
This Beginner Unity course is the perfect starting point for anyone looking to master Unity 2D game development. Through a hands-on tower defense game tutorial, you will learn how to build games with C# from scratch, creating a fully playable game while gaining practical programming and design skills. By the end of the course, you’ll have both the confidence and the portfolio-ready project to continue your journey in game development.