
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.
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.
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
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
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.
Animation:
- Importing Animations
Animation:
- Using Animator to set up Animation Tree and Animation Blending
Animation:
- Using script to drive Animations
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.
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.
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.
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
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.
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.
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.
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.