
Overview of the course projects you are able to create at the end of each class.
In this course we will make 15 different games, step-by-step.
Introduction & background information of the course lecturer and introduction to existing Unity projects.
Step-by-step explanation how to download and install Unity.
For our class we will be using the latest version of Unity 2018 as we will be using UNet in class 13 and 14.
It is possible to use a later version of Unity for classes 1 to 12 & 15.
This is a compilation video of student's work who took this course as a summer course at ShanghaiTech University.
The students had no Unity experience before starting the course and were able to achieve amazing results!
Unity User Interface:
- Creating 3D Objects
- Move, Rotate, Scale
- Inspector Window & Scene Hierarchy
Lighting:
- Using lighting to create atmosphere (Omni light, Directional Light, ...)
C# basics:
- Variables, Functions & Code grouping
Creating & adding scripts to GameObjects
- Start, Update (+ Awake, FixedUpdate, ...)
Collisions & Triggers:
- Physics using Rigidbody & AddForce
Creating & adding scripts to GameObjects:
- OnTriggerEnter, OnTriggerExit
Character Controller:
- Using a CharacterController to control and move a character
Character Controller:
- Using a CharacterController to make a character jump
Prefabs:
- Creating assets for instancing and updating scene
Audio:
- Playing sounds / Music using AudioSource and AudioClips
Develop a top-down shooter by rotating toward the mouse, spawning bullets from prefabs, and implementing a weapon equipment system with UI, textures, and basic physics.
Learn how to parent objects in the scene hierarchy by dragging onto a parent, so children move, rotate, and scale with the parent, and eyes follow the character.
Rotate the character to face the mouse by converting world space to screen space, computing the angle with arc tangent function, and applying the rotation to align with the cursor.
Prefabs:
- Creating assets for instancing and updating scene
Assemble a gun from cylinders into a handle and barrel, adding a bullet spawn point. Turn the setup into a prefab that follows the player and enables spawning bullets.
Set up shooting mechanics by verifying ammo and cooldown, instantiate bullets from the bullet prefab at the spawn point with rotation. Update ammo and UI accordingly.
Rotate bullets by minus 90 degrees on the z axis to face forward, then attach a rigid body and a bullet logic script to set velocity along transform.up at 0.8.
Implement a half-second cooldown and ammo counter: track cooldown with delta time, allow shooting only when cooldown is zero, spawn bullets, and start with 20 ammo shown in the UI.
UI:
- Creating UI in Unity using Canvas System
Implement gunshot and empty gun sounds with serialized audio clips and an audio source; play correct clip when firing or out of ammo, and add ammo crates and new weapons.
Add and customize weapons in Unity by duplicating a pistol into a shotgun, adjusting its model and materials, and creating shotgun bullets and sounds and prefabs.
Join the third Unity class to implement navigation and enemy patrols, enable player damage to zombies, and build prefabs, shooting, ammo UI, and a weapon system.
Enums:
- Creating various states for Player and Enemies
Attach a nav mesh agent to the enemy, set speed and destination to the player, update the destination in the update function, and stop the agent within 1.5 units.
Artificial Intelligence:
- Creating an Enemy with various states
Artificial Intelligence:
- 3D Mathematics for Player Detection
Implement enemy damage in Unity by distance check, half-second cooldown, dealing 10 damage and reducing player health, resetting cooldown, playing a sound, and switching to chase when out of range.
Add enemy attack and hit sounds via audio sources, and implement level reload on player death, using Unity scene management and the NAF mesh system.
Master the animator-first workflow by recasting the animation timeline, adding events, and applying ray casting from the camera with baked navmesh, agents, and enemy patrols to manage damage.
Visualize clicks in Unity by spawning a green, semi-transparent sphere at the clicked position that shrinks over time, using a serialized field and delta time to scale.
Move the camera in a top-down Unity game by following the mouse at screen edges and center it on the player with space, enabling smooth follow when held.
Import 3d models into Unity by downloading assets, importing the model file and textures, creating materials, attaching the model to the player, and turning it into a prefab for animation.
Learn to use Unity's animation timeline to create keyframed sword attacks, add an animator and animation clip, and control looped attack animations on the sword holder position.
Implement player states with an enum (idle, moving, attack moving), track an enemy target, and use a nav mesh agent to chase and attack in range.
Apply a health system with sword hits in Unity, destroying the enemy when health hits zero, using animation events to trigger damage, and expose get target enemy logic.
Follow the player with a y-axis offset and a z-axis offset for smooth camera movement. Use late update to apply the camera target offsets, enabling forward/backward, up/down, and left/right movement.
Hold right mouse button to rotate camera around the player, using mouse X and Y, clamp vertical rotation to -30 to 30, and apply quaternion rotation to the offset.
Implement camera look at in Unity to continually face the player while orbiting, and add mouse wheel zoom with clamped distance to avoid extremes.
Animation:
- Importing Animations
Animation:
- Using Animator to set up Animation Tree and Animation Blending
Animation:
- Using script to drive Animations
Learn to add contextual footstep sounds in Unity by recasting from the foot to the ground, selecting earth, grass, puddle, or stone sounds based on terrain tags and layers.
Implement contextual footstep sounds by raycasting from the character's left and right foot bases onto the terrain layer, detecting terrain tags (stone, grass, puddle) and playing corresponding sound lists.
Enable the player to rotate toward the camera's forward direction by using the camera's forward vector and camera logic, so movement input makes the character face the camera.
Set up a new Unity project, import the AJ character and animations, configure materials, loop animations, and build an animator controller with a blend tree foridle, walk, and run.
Implement enemy logics using a state machine to handle idle, standing up, and attack states, with a character controller driven forward movement and animator integration that activates on aggro.
Implement a zombie weak point trigger on the head that dies when the player steps on it, connecting to the enemy logic to play a non looping dying animation.
Apply the singleton design pattern to create Unity game manager that coordinates saving and loading, serialize int, float, and string, convert Vector3 to three floats, and implement local save system.
Singletons:
- Creating a GameManager class to manage all objects and score in the game.
Saving GameData:
- Saving the Data of our game to Loadable format
Saving GameData:
- Saving the Data of our game to Loadable format
InputManager setup:
- Adding support for an Xbox Controller
Add a second player by duplicating the player and assigning materials, and implement per-player input with an enum id and keyboard and gamepad mappings for movement, jumping, and animation.
Update the player logic to integrate the animator and drive movement from the absolute input values. Rotate toward movement, prevent snapping, and set up dual-player control with shooting fireballs.
Particle Emitter:
- Creating VFX
NOTE:
If you are using Unity 2018.x or higher do not download the version from the video.
Instead open a new blank project and import the updated particle system from this link: https://assetstore.unity.com/packages/essentials/tutorial-projects/unity-particle-pack-127325
Thanks to: James LiSooey
Implement a player respawn system by using a max respawn time and a respawn timer in fixed update, resetting position via a spawn pulse and triggering the respawn animation.
Implement a Unity UI manager to track mp1 and mp2 scores, expose serialized text fields, and update scores via a player-num driven function that refreshes UI text.
Learn to optimize the Unity game by scaling the UI with screen size, fix fireball collisions and lifecycle, and explore basic multiplayer setup, input handling, and particle effects.
Explore Unity UI fundamentals with a localization workflow, scene loading, and a main menu; implement button on-click logic, local multiplayer controls, and events and delegates for interactive gameplay.
Learn to use Extensible Markup Language data for localization by creating English and Chinese localization files with key-value entries for a game menu and implementing language switching.
Creating XML Reading support:
- Reading XML data and importing it to the game
Localisation:
- Adding support for multiple languages using XML
Creating an executable:
- Building the game for PC
Learn to implement keyboard and controller ui navigation in Unity by using a serialized start button, selecting it by default, and letting the event system handle input.
Create a Unity UI manager singleton to switch between main and options menus using a serialized UI state list, a runtime map, and localization support.
Import and set up a Swat character with a humanoid rig, load ten animations for rifle aim, idle, walking, crouching, strafing, and firing, and prepare the animator controller.
Implement aiming by rotating the neck and shoulders through bone local rotation driven by the camera's rotation X, using animator IK on humanoid tree and camera logic integration.
Add weapon logic to visualize aiming with a bullet spawn position and a red line renderer from the AK barrel to the aim point, plus adjustable width and range.
Improve weapon logic with recast to stop the line render at impact and display impact marker. Update line render positions and toggle an impact pos sphere on hit, preparing shooting.
implement advanced animations by triggering shoot and reload via the animator, manage is_reloading state and reload behavior, and add crouching logic with is_crouching to control movement and animation.
Implement inverse kinematics in Unity to attach the left hand to the weapon using humanoid rigs, set position and rotation weights, and disable IK during reloading.
Implement advanced impact marking in Unity by placing a plane at the collision point with a slight offset and correct normal, then texture it and create a gunshot crack prefab.
Implement an over-the-shoulder aiming camera in Unity by toggling an aiming mode with the middle mouse button, adjusting camera offset and rotation in late updates for a smooth, restorable view.
In this Unity course we start from the very basics and cover all topics from complete beginner C#, Unity User Interface and will continue to explore advanced Unity features such as Animations, Animation Blending, Inverse Kinematics, Shaders, Post-Processing and even Multiplayer Networking (UNET) in the final classes.
This course contains 230 videos with over 19 hours of video learning content with an average video length of 5 minutes.
During this course you will learn how to create 15 different games of various game genres while learning the core features of Unity Game Development.
These game genres include:
Basic Platformer
Top Down Shooter
Top Down Shooter with AI
Basic MOBA
Third Person Platformer
Platformer with Loading & Saving
Local Multiplayer Arena
Main Menu, Localization & Game Loading
Third Person Shooter
Procedural World Generation using Unity Editor Extensions
Exploration Game with Advanced Visuals
First Person Shooter
Top Down Networked Multiplayer
First Person Shooter Networked Multiplayer
2D Action Game
During the creation of each game every step of the development process is shown and explained.
All scripts which are written an demonstrated are shared with the viewer in order to solve any potential bugs or issues.
This course has been taught at ShanghaiTech University to over 60 students and several graduate students have started their Game Development Careers as a result of this course.