
Continue your Unity game development journey by building real-world projects and exploring advanced C# code architecture. Compare approaches and optimize for sixty frames per second on mobile devices.
Preview an infinite runner game with unlockable characters, enemies, and obstacles, plus high score saving and menu interactions. Explore ways to spawn the background and optimize gameplay with hands-on assignments.
Create a 2d Unity project and import assets, including sounds and sprites. Slice sprites with the sprite editor, set pixels per unit, and attach animator, capsule collider, and rigidbody.
Create and organize player animations in Unity, configure sprites and pixels per unit, and set up transitions and parameters (jump, attack, running, double jump, jump attack) with a tag manager.
Learn how to move the player in Unity by adjusting the Rigidbody velocity, setting the ground with a box collider, and tweaking move speed and gravity scale.
Attach a camera follow script to the main camera, then follow the player with a configurable x offset using a tag-based reference and null checks.
Create and organize the level by building ground and tree prefabs, configure sorting layers for ground, trees, and player, and attach a moving background under the main camera.
Learn how to create an infinite background in Unity by repositioning ground and trees on collision, using a tag-driven reposition script, trigger colliders, and camera follow timing.
Learn to generate and reposition grounds and trees in Unity from code using ground and tree prefabs, manage spawn timing, and organize objects under a background generator.
Master a Unity background generator using pooling to recycle ground and tree prefabs, safely activate inactive objects, and perform an initial spawn.
Implement a ground check and double jump in Unity by detecting ground with an overlap circle on a ground layer and applying impulse to the Rigidbody2D.
Learn to implement player animations with transitions in Unity, using an animator, triggers, and velocity parameters for jump, double jump, attack, and run, with transition timing adjustments.
Learn to implement a player attack animation in Unity with input handling and attack cooldown, using grounded and jump attack variants and a serialized attack wait time.
Set custom pivot points for attack sprites in Unity to fix frame issues, ensuring the panda stays in place with its collider during running, slash, and jump attacks.
Slice wolf sprites, set a sorting layer, resize with pixels per unit, attach collider and rigidbody, and build an animator controller with idle, attack, and death animations, then prefab wolf.
Learn to deal damage to the enemy by creating a damage collider activated via animation events and on trigger enter 2d, with tag checks and continuous collision detection.
Build enemy damage interactions in Unity by animating a wolf with an attack trigger and damage collider. Use trigger events and layers to detect the player and apply damage.
Create rotating blade obstacles with circle colliders as triggers and attach a rotate obstacle script to spin blades around the z axis with randomized speeds that damage the player.
Attach a swing obstacle script to the swinging ax nut, set min and max z rotation values, and use rotate speed with Mathf.Abs to create a pendulum-like swing between bounds.
Attach a rigidbody and set gravity scale to zero, then compare two swinging methods—transform-based rotation and rigidbody angular velocity—using rotation bounds and a rotate speed.
Implement an obstacle spawner that instantiates spike, swinging, wolf, and rotating obstacles ahead of the camera using random spawn times and a type switch.
Build a Unity obstacle spawner pool by initializing pools for spikes, swinging obstacles, wolves, and rotating blades, then spawn them at runtime with random selection and position control.
Implement health collectables in Unity by spawning a health prefab with proper tagging, collision handling, and a randomized 30% spawn probability beside obstacles.
Implement a health collectable pool in Unity by creating a health pool and prefab, then spawn health items with time intervals and probability.
Create the gameplay UI in Unity, building a gameplay canvas, score text, and pause controls. Configure anchors, the sorting layer, and a pause panel with resume, restart, and exit buttons.
Set up the player health UI by slicing sprites, creating health bar images, and placing multiple health bar elements on the player canvas to represent the player's health.
Create a Unity game over canvas with game over text, current score, and best score; add exit and restart buttons, and note enable vs deactivate for performance.
Build a Unity player and enemy health system using a health bars array with a zero-based index to deactivate bars on damage, add health pickups, and manage game over.
Develop a Unity score counter using a gameplay manager and core counter, update every second via time.deltaTime, and display with a reusable string builder.
Build a pause controller in Unity that toggles the pause panel using time scale, and add restart and exit game functions via scene management.
Create and attach a game over controller to the gameplay manager, show the game over canvas with current and best scores, and control score counting and time scale for restart.
Create a Unity main menu scene with a canvas, background, and character icon, add play and high score elements, and set up a character select and main menu animation.
Attach a script to the main menu to animate ui sprites by cycling a serialized sprite array with a timer and state, highlighting the script-based approach over the animator.
Build a three character select panel on the menu canvas using user interface images, character slots with checkboxes, and a select button; learn to enable or disable the panel.
Implement a main menu controller in Unity to manage the character select panel, high score display, and play button, plus load gameplay scenes with the scene manager.
Implement a data manager in Unity to save and retrieve high scores and character unlocks via player preferences. Plan binary IO later and use a singleton gameplay controller with DontDestroyOnLoad.
Develop a Unity character select menu by managing buttons and checkboxes, initializing data, and locking or unlocking characters based on selection, while saving and loading the chosen character for gameplay.
subscribe to the scene loaded event to instantiate the selected character in gameplay, ensure the main menu loads first, and manage health bars with a health bar holder.
Unlock characters by score with a check function, saving and displaying the high score through a data manager and updating the main menu.
Build a Unity sound manager from scratch with a singleton, audio sources, and functions to play music and sound effects for gameplay and menus, including time scale handling.
Preview a sci fi shooter project in Unity with multiple weapons including electric and laser guns, two sided enemies, kill counts, animations, and UI with high score and main menu.
Create the level in Unity by importing assets, organizing backgrounds and level elements, and using sorting layers, parent objects, and precise positioning and scaling to build a connected, playable scene.
Configure a player with an animator, capsule collider, and rigid body, then build gun-specific animation controllers (idle, walk, shoot, punch, death) and duplicate for multiple guns.
Create and attach a player movement script in Unity, using a serialized move speed, bounds, and input axes via a tag manager to update the player's position with delta time.
Create a dedicated Unity player animation script that uses named animations like idle, walk, shoot, and punch, driving them via code and an animator, with sprite flipping by scale.
Learn to implement weapon switching in Unity by creating a weapon manager and using runtime animator controllers to swap weapons, manage weapon index, and ensure smooth animation during movement.
Trigger the shoot animation from the player script in response to input, and manage movement with wait timers and a can-move flag to stop walking during fire.
Learn to create and configure bullet prefabs in Unity, including sprite setup, collider and kinematic rigidbody, and trail rendering with color and alpha; duplicate and customize weapons for movement scripting.
Create and configure bullet scripts, set move speed and direction, and implement the electric bullet with animator, box collider, and rigid body 2D; establish tags and prefabs for seamless gameplay.
Create a universal bullet pool in Unity by initializing bullets for each weapon and organizing them under a bullet holder, with get bullet and add bullets to pool functions.
Create a player shooting manager in Unity to shoot bullets from a bullet pool, manage weapon types, spawn points, and activate or instantiate bullets for the current weapon.
Master shooting mechanics in Unity by implementing a shooting manager, weapon types including electric bullets, input handling for continuous fire, and bullet pooling with reset and trail management.
Create a camera follow script to smoothly track the player, using bounds on x and y, a y gap, and linear interpolation for fluid motion.
learn to add enemies, create their animations (idle, walk, attack, hit, electric, death), configure colliders and rigidbodies, set up sorting layers, and duplicate to create multiple enemies with consistent controllers.
Implement enemy AI in Unity by updating the update loop to surge toward the player and attack, while handling idle, walk, hit, electric, and death animations.
Attack based on the timer, trigger enemy attack animations in Unity, and control damage with a damage area activated by animation events and a can deal damage flag.
Create enemy bullets, trails, and colliders to enable enemy shooting, handling bullet direction, speed, and collisions with the player. Implement a universal bullet pool for reuse across enemies.
Learn to implement a single enemy bullet pool in Unity, initialize and reuse bullets, deactivate and reattach them, and fire from the pool for efficient enemy shooting.
Explore how to implement enemy damage animations in Unity, differentiating electric and normal bullet damage, managing damage timers and state transitions from idle to hit, electric, walk, and attack.
Create two bullet fx animations and animator controllers in Unity, attach them as player-owned prefabs, and trigger them from the player shooting manager to render above the player.
Create a universal health script for both the player and enemies, with serialized fields for health values, max health, take damage, increase health, clamp to max, and future UI updates.
Implement player damage and death effects in Unity by wiring health checks, damage color flashes, hurt sounds, and game over sequence that removes the player after dying from enemy bullets.
Set enemy health and an enemy dead flag, apply damage, and trigger death when health reaches zero. Disable the collider and remove the enemy after a delay, highlighting code order.
Learn how to implement health fuel collectables in Unity by spawning health fuels as prefabs when enemies die, tagging and colliding with the player to replenish health.
Build a gameplay UI by creating a canvas, configuring screen space camera, and adding a health bar, kill score text, and weapon icons to reflect player health and initial weapon.
Learn to build a gameplay UI controller in Unity, managing health sliders, weapon icons, and kill score text with a singleton. Initialize health, switch icons, and track enemy kills.
Create a Unity enemy spawner that spawns enemies from multiple positions using a dedicated spawner script, instantiation of random enemies, and a capped spawn limit.
Create a Unity game over panel with a canvas, final and high score texts, a play again button, and use a UI controller to display scores and restart the scene.
Create a sound manager in Unity, attach audio sources for big music and laser, and expose a singleton instance to play weapon and hurt audio clips.
Explore a top-down dungeon game in Unity, featuring multiple enemies, boss battles, and varied weapons, with a playable character, gates, and reusable AI and weapon systems.
Import assets and levels into a new 2D Unity project, then set up dungeon levels and camera basics, including a camera holder, tile system, and hex color 13221B.
Learn to create and paint a Unity tile map using a tile palette, drag sprites, and adjust cell size to build levels on a grid.
Create and animate a player character in Unity by configuring sorting layers and a blend tree driven by phase X and phase Y to blend down, up, and side animations.
Build a reusable character movement system in Unity by creating a base movement class, using box cast to detect blocking layer mask, and deriving player and enemy movement.
Learn to rotate a Unity player and drive animation using mouse input, screen-to-world point conversion, and integer-rounded X and Y animator parameters.
Learn to implement a camera follow in Unity by attaching a camera follow script to the camera holder, calculating delta position within bounds, and updating in late update.
Create empty weapon objects as children of the player and configure side, up, down, and diagonal variants with precise positions, scales, and order in layer.
Learn to implement a Unity weapon manager that holds guns in an array, activates the current weapon, and switches with Q while handling side, up, down, and diagonal orientations.
Prepare bullets for a Unity game by configuring pistol, laser, and flame thrower bullets with sprites, colliders, rigidbodies, and prefabs, then script movement and collisions.
Learn to implement shooting in Unity by calculating bullet direction from the mouse via the main camera, spawning from the weapon spawn point, with a bullet pool.
Learn to build a Unity bullet pool with singleton instance and pistol, matter, laser, and flame bullet lists. Fire by spawning or reusing bullets with spawn position, rotation, and direction.
Fix bullet pooling by creating a bullet animation controller and idle and explode animations in Unity, using animator parameters to trigger explosions and deactivate bullets.
Learn to implement camera shake in unity by creating a camera shake script, invoking shake on fire, using random offsets, and resetting the camera through a weapon manager.
Prepare enemies by configuring animations, colliders, and physics; create animator controllers with idle, walk, and death states for ice zombie, EMP, masked orc, and swampy; slice sprites and build prefabs.
Create an enemy script based on the character movement base to chase the player, track last known position, and return to start, with damage cooldown, serialized settings, and facing direction.
Implement enemy animation in Unity by coding a C# script that switches walk and idle states via the animator, using movement magnitude and triggers when health drops.
Learn to implement an enemy batch handler in Unity, using child components to gather enemies, enable and disable player targeting via colliders and target controllers, and manage batch-based AI behavior.
Attach a universal character health script to players, enemies, and bosses to manage max and current health, apply damage on collisions, and trigger death animations.
Create a death state in the player animator, trigger with a death parameter, and destroy the character after animation; damage enemies through their health component and stop movement when dead.
Prepare a shooter enemy by adding a devil sprite, setting pixels per unit, attaching animator, collider, and rigidbody 2D with zero gravity, and configuring idle and death animations and health.
Create a Unity enemy shooter that moves horizontally, vertically, or stays still, uses random target points between child objects, and updates facing direction via scale or sprite flip.
Prepare the devil bullet projectile with a sprite, collider, and animator, and configure idle and explode animations with a boolean explode parameter. Implement bullet behavior, pooling options, and player damage in Unity.
Create a Unity enemy shoot controller to fire normal and spread bullets from a prefab, using atan2 for direction, bullet speed, spread offset, and a shoot timer.
Configure and test the enemy shooting by detecting the player in range with the player detect zone and firing toward the player using a shoot timer and spread, slow, or normal bullets.
Create a big demon boss enemy by adding an animator, a trigger box collider, a kinematic rigidbody, and health; configure idle and walk states and a death transition.
Create a boss movement script in Unity that patrols between predefined positions, adjusts speed when the player is detected, and flips to face the target.
Learn how a Unity boss detects and chases the player, mixing random movement with targeted pursuit, and deals damage on collision using a boss target detection zone.
Attach the enemy shoot controller to the boss and configure demon bullet prefabs for timed shooting toward the detected player, with optional random or spread firing patterns.
Learn to manage enemies in a Unity game by removing destroyed enemies from the batch, handling shooter enemies, updating death events, and linking batch state to gate unlocking.
Create doors as level barriers using door barriers and locks within enemy batches; unlock doors when all enemies (shooters and regular) are defeated, with proper colliders and layer ordering.
Decorate the level with animated water decorations by adding an animator controller, adjusting color, and placing resizable decorations across the level for a cohesive look.
Create and configure the main menu scene in Unity, including the main camera, collisions, a screen-space canvas with a 'tap anywhere to start' button, and arranging player prefabs.
Create a main menu controller to zoom the camera and let players select a character, then tap to start the game which triggers camera movement and character selection.
Implement a playable character selection system in Unity by creating a character selection script, adapting movement and animation, and wiring the main menu camera to follow the chosen character.
Wrap up the Unity game by setting up door mechanics with sprite slicing, animators, and triggers, and load the next level via scene management when the player approaches.
*** More Content Is Being Added To The Course •••
This is Volume 2 in my Most Comprehensive Guide To Unity Game Development series. If you are interested to enhance your Unity skills then read further.
As in all of my courses, this course is also project based. Simply put, the best way to learn is to actually create a game that is playable on any device, and this is what I preach in all my courses.
Since this is an intermediate course we will not cover the basics of programming with C# and how to use Unity, instead, we will dive deeper into C# coding practices and learn how to solve complex problems with simple logic.
As we go through the projects I will show you multiple ways how to solve the problem at hand and I will compare different ways and talk about the pros and cons of each and why and when should you use one way over the other.
The main focus of this course is to help you think like a programmer and gain strong problem solving skills. Because in 99% of the times in any project you will solve problems by using simple logic instead of complex algorithms, and this is what this course is about.
And not only that, but I will explain to you how to optimize your games from the very start so that you avoid the most common optimization heavy mistakes that not only beginners make when they create their games.
Every section in this course will gradually increase in size and depth so that you always learn new things and face new challenges.
During the lectures, I will give you assignments to challenge your knowledge and to challenge your ability to think like a programmer. Because in game development, the best way to learn is by doing. Of course, I will provide a solution for every assignment that I give you, but I will expect that you try to finish it on your own because it will give you experience, and the feel of how to solve programming problems on your own and it will help you implement and retain everything that I am teaching you in the course.
You will also benefit from my super fast response if you have any issue that you are stuck with, and oh and all the students taking the course will also be there to help you!
Some of the things that you will learn in this course:
Intermediate, And Advanced C# Programming
Basic AI(Artificial Intelligence)
Advanced AI(Artificial Intelligence)
Basic And Advanced Character Animations
Sound FX And Music
Learn How To Use Unity's UI System
Create And Animate Menus
Saving And Loading Game Data
Basic And Advanced Animations
Creating Reusable Code
Writing Optimized Code
Generate Procedural Levels
Create Object Poolers For Enemies, Obstacles And Levels
That And Much More Is Awaiting You In This Course
If You ever had an idea for an awesome game, then enroll in this course and learn the tools that you need to develop Your next hit game!!!
What Is Your Risk By Taking This Course?
Nothing!! If you are not satisfied with the course, I promise I will give you a full refund of your money NO questions asked!!
Enroll Now!! You Will Not Be Disappointed!!
*** COURSE REQUIREMENTS - PLEASE READ THIS BEFORE YOU ENROLL ***
You need to know or at least understand how all the concepts listed here work and function before you can enroll in this course:
- Understand what are variables, classes, functions, objects and know how to use them
- Understand what data encapsulation is and what does private and public mean
- Understand what arrays and lists are and how to use them
- Understand what loops and different types of loops are and how to use them
- Know your way around unity’s interface
- Understand how unity’s physics system works and how to use the rigid body
- Have a basic understanding of what are raycasts and how to use them
- Know how to manage unity’s sprite renderer component and its sorting layers
- Understand what is the transform component and how it works, also how to manipulate it with Vectors and Quaternions
- Understand how to animate and use animation transitions and how to use unity’s mechanim system
- Understand how to use unity’s UI system, what is a canvas and how to manipulate canvas scale options
- Understand how to use PlayerPreferences to save and load game data
- Understand what is pooling or at least know the basics of pooling
- Understand what singletons are and how to use them
- Understand what delegation is and how to use it