
Learn to set up Unity and build a tower defense game using C#. Engage with the course feedback area and discord, and compare your progress to the final project.
Set up a Unity 3D project, adjust the editor layout for efficiency, standardize the full hd aspect ratio, and import the terror defense assets while removing unused tools.
Design a basic tower defence level in Unity using C#, creating a ground plane, a top-down camera, a tile-based enemy path, and a castle centerpiece with surrounding environment.
Create an enemy in Unity, attach an enemy controller script, and move it toward a target using Vector3.MoveTowards with a move speed and Time.deltaTime for smooth, frame-rate independent motion.
Learn to build a path system in Unity for enemies to follow, using path and path point empties, a transform array, and a custom Path script to drive movement.
Automatically locate the path object and propel an enemy along its points, updating the current point and stopping at the end to ensure smooth navigation.
Make an enemy along a path turn and look at each point. Align the model's forward (z) axis and use the look function with instant corner rotation for natural movement.
Create a simple bounce animation for enemy models using the Unity animation window, employing bounce and stretch to add lifelike movement while keeping it lightweight for many enemies.
Build a castle health system in Unity with a Castle script tracking total and current health and a take damage method, plus an attack counter for damage per attack.
Learn to display a castle health bar using a world-space UI slider on a canvas, set anchoring and colors, and update it from health changes.
Create and reuse an enemy prefab to spawn foes, control timing with a spawn counter, and implement a wave-based system that limits total spawns using an amount to spawn.
Assign each spawned enemy a specific castle and path using a setup function and null checks, preparing for future support of multiple paths and castles.
Set up attack points on the castle and have waves of enemies randomly target these points, spreading the siege while moving toward selected positions using Unity C# scripting.
Stop enemy movement and spawning when the castle's health reaches zero by gating the enemy controller with health checks and using a public castle health variable with inspector visibility control.
Set up a simple projectile-based tower in Unity for a tower defense game by assembling tower and weapon models, aligning height, and preparing to target enemies and fire.
Create a base tower script that detects enemies within range using an invisible sphere and a layer mask, storing colliders in range for upgrades and different tower types.
Learn to detect enemies in range by collecting their enemy controllers into a list using a for each loop to get components, and optimize updates with a timed check.
Set up a cannonball projectile in Unity by creating a cannonball prefab with a rigidbody, forward velocity, and trigger collisions, and destroy it when off-screen.
Fix ground collisions by replacing plane mesh colliders with a single ground plane box collider. Configure size and position, then test cannonball interactions to prevent premature destruction.
Learn to fire cannonballs in Unity and C# by turning the projectile into a prefab, setting a fire point, using a timer, and firing only when enemies are in range.
Identify the nearest enemy in range and target it, with the tower selecting the closest enemy and firing from the fire point.
Learn to make a Unity tower defense cannon smoothly rotate toward enemies using quaternions and slurp (slerp), with an aligned launcher model and Euler rotations that keep the cannon level.
Optimise target checking in a Unity tower defence game by syncing enemy range updates with tower updates via an enemies updates flag, reducing per-frame checks.
Create impact and shot effects in Unity with a particle system using a sphere mesh. Randomize size and lifetime, and spawn an impact prefab at the fire point.
Add an enemy health controller with total health and a take damage method, wire projectiles to damage enemies via a tag-checked collision, and destroy the enemy when health reaches zero.
Display enemy health by reusing the existing canvas with a health bar slider tied to total health, and keep the bar facing the camera for clear damage feedback.
Limit cannonball damage to a single enemy in Unity using a has damaged flag, preventing multi-target hits when enemies overlap. Learn about spawn timing, on trigger enter, and destroy queuing.
Set up a Unity UI canvas and a placement button to enable tower placement on the ground, using a prefab for reuse and Text Mesh Pro for clear labels.
Learn to set up a start tower placement workflow in Unity, including button creation, text setup, a tower manager singleton, and placing a Canon Tower prefab with debug logging.
Learn to visualize tower placement in Unity by enabling a placement indicator, following the mouse with a grid position, and using an is placing toggle to control when placement starts.
Shoot a ray from the camera to detect the ground and compute the placement position, using a placement layer mask and a debug indicator updated in real time.
Learn to place towers in a Unity tower defense game by using left-click to confirm placement, instantiate the tower at the indicator position with preserved rotation, and exit placing mode.
Replace the indicator by destroying the old one, instantiate a new tower as the indicator, and disable its shooting until placement is complete.
Limit tower placement to the green grass area by raycasting from the ground to detect obstacles and use layer masks and colliders to block placement near towers, castles, and roads.
Limit tower placement to the bottom screen area with a topSafePercent setting (default 15%), and use mouse y and screen height checks to block placement near the UI.
Learn to visualize tower range in a Unity tower defense game by adding a range indicator that scales to the tower’s shooting radius, rotates for feedback, and hides after placement.
Implement a money system with a money manager singleton, track current money starting at 200, and award 50 gold on enemy death to fuel tower purchases.
Implement a money management system in Unity to spend funds on towers, checking available money before placement, deducting costs, and updating debug output to reflect spending.
Display and update player gold in a Unity tower defense game by building a gold UI panel and a UI controller that tracks starting money and on screen changes.
Display a red not enough gold warning in the UI when the player lacks funds to place a tower, toggled by money checks against the tower cost.
Implement a level manager to determine win or lose by monitoring the castle and active enemies. Add and remove enemies as they spawn and die to trigger level completion.
Design and implement a responsive level complete and level failed UI in unity, controlled by levelmanager, with level active checks, and buttons for level select, next level, and main menu.
End the level by deactivating tower buttons through the UI controller to prevent further purchases, then run the level complete system and show remaining gold.
Learn how to create and program your very own tower defence game using Unity, an industry-standard game development program used by large gaming studios and indie developers across the world.
In this course you won’t just be learning programming concepts, but tying these concepts to real game development uses. You will have access to a course forum where you can discuss the topics covered in the course as well as the next steps to take once the course is complete.
This course has been designed to be easily understandable to everyone, so whether you’re a complete beginner, an artist looking to expand their game development range or a programmer interested in understanding game design, this course will help you gain a greater understanding of development.
At the end of this course you will have developed the ability to understand such game elements as:
Spawning Waves of Enemies
Placing & upgrading towers
Creating Different Kinds of Enemies
Creating Towers with different weapons and effects
Creating Dynamic Paths for Enemies To Follow
A Complete Currency System
Audio systems
Interactive Menus
An in-world Level Select system
and much more...
The course also includes a complete version of the project to use for your own reference to ensure everything in your game works as it should!
Start learning today and let me help you become a game developer!