
Learn to build a 2D tower defense game in Unity by creating a waypoint system, enemy behavior with health and damage, tiles-based maps, turrets with upgrades, and a turret shop.
Learn the essentials of Unity and C# for building a 2D tower defense game, covering variables, methods, classes, game objects and components, with troubleshooting tips and diff checker code comparisons.
Create a Unity 2D tower defense project by selecting the latest Unity version, applying the default layout, adjusting the camera background, and importing licensed and free asset packs and sprites.
Learn to build a 2D tower defense path in Unity by creating waypoints, a custom editor with handles, a spawner with fixed and random timers, and object pooling for performance.
Learn to implement a waypoint system in Unity, visualize path points with green gizmos and connecting lines, and sync all points when moving the waypoint in edit mode.
Create and edit waypoint handles in a Unity custom editor to visually adjust path points, with live updates and index labels for a 2D tower defense game.
Create a spawner class in Unity that spawns enemies using either a fixed or random delay, with editable parameters in the inspector and a test prefab.
Reuse preloaded enemies via the object pooler to reduce memory allocation and garbage collection, enabling efficient spawning, activation, and recycling in Unity.
Explore building and animating enemies in a Unity 2D tower defense game: create enemies, move along waypoints, manage health bars, respond to damage with hurt animations, rotations, and wave spawning.
Create and organize enemy animations in Unity, including die, hurt, and run clips, preview them in the animation window, and use animator override controllers to share logic across enemies.
Create enemy prefabs and implement waypoint-based movement in Unity, moving each enemy toward waypoint positions and updating the current index until the final point is reached.
Implement enemy handling at the final waypoint by returning enemies to the object pool and reducing lives via a level manager subscribed to the on and reach event.
Assign a waypoint reference when spawning new enemies, reset each enemy's current waypoint index, and use object pooling to spawn and recycle enemies in a 2D tower defense game.
Add waves to the game by tracking enemies remaining and starting a new wave after a delay between waves, using a coroutine and event subscriptions.
Learn to create and manage enemy health bars in a Unity 2D tower defense game, including world-space canvases, health bar prefabs, and damage-based updates.
Trigger new enemy waves in a Unity 2D tower defense game by firing the on enemy killed event, resetting health, and reusing enemies via a health reset method.
Learn to drive 2D enemy animations in Unity by subscribing to damage and death events, triggering hurt and death animations, and pausing movement during hits.
Rotate the enemy to face the direction of movement by comparing consecutive waypoint positions. Update the last point position at each waypoint and flip the sprite renderer accordingly.
Learn to create a 2D tower defense in Unity by building turrets with attack ranges, rotations, and projectiles, then implement damage display and multiple turret types with varied firing patterns.
Create turrets in Unity by implementing a turret class with an attack range gizmo and a circle collider 2d that auto adjusts its radius to the attack range.
Rotate the turret toward the first enemy in range by maintaining an enemy list, updating the current target, and handling enter and exit range to stop rotating.
Create turret projectiles in Unity by loading from a pool, rendering on a sorting layer above turrets, then rotate and move toward an enemy target while testing with G key.
Deal damage to enemies by proximity check, apply to enemy health, and return projectiles to the pool; load new projectiles when turret is empty and enforce delay with local rotation.
Demonstrate how to show damage amounts in a 2D tower defense game by building a world-space pooled damage text system that animates numbers above enemies in response to hits.
Implement a generic singleton in unity by defining a public static instance of type T and inheriting from singleton, enabling automatic creation for any component.
Learn to create more turrets in a 2D Unity tower defense game by duplicating projectiles and prefabs, standardizing sprites to 64 pixels per unit, and adding two new turret types.
Create a machine turret system in Unity by subclassing a base projectile, overriding movement and firing, and using object pooling to spawn and recycle dual turrets with spread.
Create a tank by duplicating the missile turret, configure sprites and rotation points, and implement a tank turret projectile that fires at enemies in range using object pooling.
Add a damage display to the machine projectile by triggering on enemy hit and showing the damage value in play mode within Unity.
Design and implement a currency system with a currency manager, load initial coins for testing, and enable turret upgrades that increase damage and reduce delay, then test in play mode.
Build a turret upgrade system in Unity by adding an upgrades class, increasing cost with each upgrade, and enhancing damage while reducing delay per shot via a projectile damage property.
Implement a currency system in Unity to manage coins, save and load with PlayerPrefs, add and remove coins, reward one coin per enemy kill, and support turret upgrades.
Create and organize prefabs for turrets, enemies, and projectiles in Unity, assign damage to projectiles, and set up health bars and damage positions for enemies.
Explore creating a map for a two-dimensional tower defense game by placing tiles manually or with rule tiles in Unity, defining runtime tile placement and addressing gaps across Unity versions.
Build a Unity 2D map with rule tiles and a tile palette, painting with a brush and applying a map material with pixel snap to remove gaps.
Take on a map creation challenge for your 2d tower defense game in Unity, experimenting with rules to shape varied map layouts.
In this introduction, learn to set up a 2d tower defense prototype in Unity by adding lives, a wave counter, and a shop for buying, upgrading, and selling turrets.
Create turret data containers holding prefab, cost, and sprite, then build a turret shop panel that reads these objects to display turrets with images and costs.
Learn how to populate a turret shop in Unity by loading turret settings into button cards via a shop manager, displaying images and costs, and instantiating prefabs in a panel.
Place turrets on map nodes by opening the shop panel from a node, deduct coins, instantiate the turret prefab on the selected node, and close the shop panel after placement.
learn to implement a node UI for upgrading turrets in unity, including upgrade and sale panels, cost updates with a coin icon, and turret level tracking via the upgrade class.
Define a sale percentage for turrets, compute and display the sale value from upgrades, then sell turrets by awarding coins, destroying the turret, and updating the shop UI.
Add more UI for a 2D tower defense game in Unity, including attack range visualization, lives and coins indicators, and a wave display with current wave updates.
Fix the sale value logic in the Unity 2D tower defence game, ensuring selling a unit yields the correct sale amount of coins rather than the upgrade cost.
Create a UI-driven achievements system, track progress and rewards, and unlock coin rewards as players complete waves and kill enemies.
Create an achievements UI in Unity by building a scrollable panel with a viewport, content, vertical layout, and reward elements, including titles, progress, and a claim button.
Create scriptable objects for achievements in Unity, with id, title, sprite, progress to unlock, and a reward image, organized in an achievements folder, with examples like ten waves.
Learn to load and display achievements in a Unity 2D tower defense game by creating an achievement card script, prefabs, and an achievements manager to populate the panel.
Add progress to achievements by updating current progress and unlocking on threshold, firing an event on unlock. Update Unity's achievement panel with live progress text and open and close controls.
Learn to fix achievement progress in a Unity 2D tower defense game by loading progress when the achievements panel opens, unlocking rewards, and enabling the reward button.
Store enemy prefabs in dedicated pools and switch between them based on the current wave. Spawn distinct enemy types for waves 1–10, 11–20, and beyond.
Learn to implement game speed controls in Unity by adding a UI panel with slow, resume, and fast time buttons that adjust Time.timeScale.
Create a game over panel in Unity to display lives and coins, and implement restart functionality with a scene manager to restart the level.
Learn how to create your first Tower Defense Game in Unity!
Do you want to learn how to create a Tower Defense in Unity? Have you ever wanted to learn how to create from scratch one of these games? Tower Defense games are very popular on Android, iOS, and PC. In this course I will explain everything you need to be able to create one of these games, together we will create this game from scratch, implementing new features as we advance.
We will start with an empty project, where we will implement all the packages we need to create the game, and we are going to discuss what we need to create one of these amazing games.
The course will cover some important aspects of Tower Defense Games, like the creation of Spawners to show enemies, adding Object Pooling to increase the performance, working with the Singleton Pattern to communicate between classes, etc.
This course covers all the basics you need to create a Tower Defense Game from scratch, at the end of the course, you will have the final project ready to be downloaded.
Things you will learn:
Create Path System
Create a Spawner
Create Enemies
Create Movement
Create Towers
Create Projectiles
Good programming practices
Work with Managers
Create Singleton Pattern
Create Object Pooler
Let´s start making games!