
Begin with fundamentals in Unity by building Elide, a cube game, then advance to Platform Survival, and finally create an RPG Adventure with advanced AI and quest systems.
Resolve issues in Unity by reading error messages, comparing your code to the provided lines, and using the lecture resources and code links to fix null reference errors.
Install Unity hub, choose a personal plan, and install the latest Unity 2020.2 release; create a simple 3D project and explore the interface—hierarchy, inspector, game view, and assets.
Explore the Unity editor by navigating a scene, creating and manipulating 3D objects, and mastering transform properties—position, rotation, and scale—using move, rotate, and scale tools.
Create and manage game objects in Unity, build a parent-child hierarchy, and move and scale them to observe how child transforms relate to their parent.
Explore Unity components that define game object behavior, from transform, camera, and light to mesh renderers and colliders, and learn how to create and attach custom scripts.
This project preview shows a basic Unity game where a player moves horizontally between walls as enemies spawn and approach, teaching positioning, movement, spawning, and health and stats UI.
Create and apply a green material to the player in Unity, adjust metallic and smoothness settings, and set up directional light to cast shadows and simulate sunset.
Open the lighting window and add a directional light to adjust the scene's daylight. Bake the lighting to precompute lighting data on disk for better performance.
This lecture shows how to track elapsed time in Unity by accumulating delta time in update, triggering actions every second and resetting the timer, and it introduces an fps counter.
Explore Unity life-cycle functions such as Awake, Start, Update, FixedUpdate, and LateUpdate; learn their call order, how OnEnable/OnDisable affects them, and how to initialize objects and components.
Explore the Unity life-cycle functions in fixed update, update, and late update, and learn how to use them for physics, input, and camera adjustments.
Get a reference to the stats component from the player controller using GetComponent with a generic type, and debug health across player and enemy.
Learn to access another object's stats component and read player and enemy health across scripts using get component and find in Unity.
Diagnose a null reference when accessing stats and health through player and enemy controllers in Unity, and ensure proper initialization by moving stat references into the start function.
Master horizontal and vertical input in Unity with GetAxis for the axes. Use -1 to 1 input values from keyboard or joystick to move the player's transform.
Adjust the transform position by using Time.deltaTime and a public speed variable; multiply horizontal and vertical input by speed and delta time for frame-rate independent movement.
Learn to implement left-right player movement by removing vertical input and delta time, then scale a plane, assign yellow material, and place walls to constrain motion for the RPG scene.
Build left and right walls in Unity, scale the plane, color the walls blue, duplicate objects, and prevent the player from moving through walls while enemies attack only between them.
Fix restricted movement by checking the future horizontal position before applying movement, and adjust wall boundary checks using wall scale and player size in Unity 3D.
Implement enemy movement by updating the enemy position in the update function so the enemy moves toward the player, using a speed variable and time delta to chase the player.
Discover how to use prefabs to spawn multiple enemies at timed intervals, with each enemy moving toward the player, by creating a prefab blueprint and applying changes to all instances.
Create a spawn manager script that instantiates enemy prefabs at runtime using a timer and public prefab reference, with time.deltaTime controlling a two-second spawn interval.
Learn to destroy enemies on collision by measuring the distance to the player with vector3 distance, decrease the player's health, and destroy the enemy within one meter.
On enemy hit, call the player's receive damage function to deduct health (e.g., 10) from current health, by finding the player object and getting its player controller component.
Create a canvas heads-up display to show the player's health, add a health text element, and position it in the left top corner with proper anchor and pivot.
Create a new catch enemy in unity 3d using c#, assign a unique color, attach an enemy controller script, and spawn the enemy from a prefab to test catching mechanics.
Create a catch enemy type and implement a dedicated catcher spawn using a catcher prefab, mirroring the spawn enemy logic with adjusted intervals and start times.
Refactor the enemy spawner by introducing a generic spawn function that selects the correct prefab based on an enemy type enum (evader or catcher), reducing code repetition.
Learn to restart the game automatically when the player's health reaches zero by reloading the active scene via scene management, and explore basic 3D movement, prefabs, and upcoming RPG features.
Download and open the cube assignment in Unity, run the project, and debug the player controller, camera position, enemies, and health logic to complete the first project.
Begin a new Unity 3D project by building a game where the player moves, rotates toward input, and evades waves of spawning enemies while collecting power-ups to boost speed.
Move the player in Unity by building a vector from horizontal and vertical input, then translate the transform with that vector scaled by Time.deltaTime to ensure smooth, frame-independent movement.
Learn how normalization keeps Unity movement consistent by preventing faster diagonal speed. See how diagonal inputs yield about 0.7 per axis and how before-and-after normalization changes movement.
Learn to make the main camera follow the player by parenting it to the player and adjusting angles for a dynamic view. Get practical tips on camera setup in Unity.
Add a rigid body component to the player, enable gravity, and freeze rotation on the X and Z axes to prevent tipping. Toggle kinematic to stop forces and collisions.
Access the rigidbody component and move the player with MovePosition, using the current position plus a movement vector, updated in fixed update for physics-based movement.
Explore Rigidbody basics in Unity: mass, drag, angular drag, gravity, and kinematic settings; apply forces to move and rotate a player, and consider collision detection and interpolation.
Build bidirectional elevators in Unity by modeling an elevator cube, applying material, creating an elevator script, and duplicating it as a prefab to place four around the platform.
Implement four elevators in Unity using C#, moving along the y axis for three seconds at five meters per second, then reversing direction with time tracking and transform translate.
Learn to implement a start coroutine in Unity to delay startup by three seconds, then enable elevator movement and continue with coroutine-based timing.
Switch to fixed update and time.fixedDeltaTime to smooth elevator movement. Use trigger enter to identify elevator triggers, compare tags, and apply actions, then inspect colliders and create custom tags.
Refactor the Unity 3D player script to keep an elevator reference and a y-axis offset, enabling riding the elevator while addressing synchronization and future rigidbody fixes.
In Unity, you add a rigidbody to elevators, set them to kinematic to prevent gravity, and synchronize player and elevator movement using move position and a two-step vector3 update.
Explore implementing player rotation in Unity using quaternions, from two rotations, aligning to the movement vector, and using the forward (Z) axis for smooth direction-based rotation.
Rotate toward mechanics align the player's rotation with movement direction using target and current rotation, limiting with max degrees per second and delta time for smooth, frame-rate independent turning.
Learn to slow rotation in Unity 3D when moving in certain directions, and constrain rotation to the Y axis for left and right movement.
Explore how the dot product of a movement vector and the forward vector determines direction in Unity, illustrated with code examples, practical movement cases, and a dot product resource video.
Refactor the rotation system in Unity using look rotation to rotate toward the movement vector on the Y axis, with a zero vector check to stop rotation when idle.
Create an enemy game object, assign a sphere, add an enemy controller script that makes it chase the player, and convert the enemy to a prefab for deploying multiple enemies.
Implement an enemy that follows the player using a Rigidbody, calculating direction with vector math and applying force to chase at adjustable speed.
Implement a spawn manager that spawns enemy prefabs at random x and z positions within -15 to 15, using the start method and instantiate, with plans for multiple respawning enemies.
Create a spawn manager that increases enemy waves to make the game progressively harder. Implement a for loop to spawn one additional enemy per wave.
Increase the player's speed with a power up, using a speed modifier of two, via a coroutine to wait several seconds before resetting the speed modifier to one.
Add power-ups to boost the player's speed modifier and strength, push enemies away with impulse during collisions, and balance values through testing in Unity.
Create a circle game object as a child of the player or enemies to indicate active powers, and position it at the parent center using Unity C# scripting.
create circle around a game object in unity using a static utility class with a draw circle method that adds a line renderer and sets points to form the circle.
Draws a circle around the player with a line renderer, using 360 points around a radius. Converts degrees to radians and applies cosine and sine to compute each point.
Add a circle around the enemy as a field that pushes the player away when they enter. Set a dynamic push radius and ensure the circle sits on the ground.
Add a push range to an enemy in Unity 3D with C#, compute player–enemy distance using move towards and magnitude to check the push radius, and apply a two-second recharge.
Create a canvas and start button in the Unity UI, then wire the button to a GameManager script that toggles the game active state and starts the game.
Connect the start game button to a spawn manager in Unity using C#, enable start spawning, manage enemy waves, and prevent excessive spawns by disabling the button.
Finish the project by ensuring the start button begins gameplay, spawning a power-up after each enemy is defeated, and refining the spawner and game manager to control elevators and events.
Walk through the project solution to fix elevator mechanics, enemy AI targeting, camera control, and power-up spawning in a Unity 3D C# RPG.
Practice basic player movement and camera rotation toward the player in Unity 3D, as part of the section intro for the complete RPG guide for beginners.
Inspect a Unity RPG example inspired by the 3D game kit, refactor its code, and explore the open scripts to discover features while appreciating Unity credits.
Create a player capsule and a simple movement script using horizontal and vertical axes, translating movement with speed in fixed update, under an RPG adventure namespace.
Organize the RPG adventure assets into a clean folder structure. Implement player rotation in Unity using quaternions and look rotation, driven by the movement vector, rotation speed, and delta time.
Explain how to rotate the player toward movement on the y axis using rotate towards, control the rotation with fixed time delta and rotation speed, and test a follow camera.
Rotate the camera to follow the player's yaw rotation in Unity, keeping the camera behind and aligned with the player while adjusting its position as the player turns.
Refactor the camera rotation to follow the player using a transform target, look at the player, and use larp (linear interpolation) to smoothly rotate behind them.
We explain rotating the camera by lerping between the current and target angles for smooth movement. We discuss the interpolation coefficient and the A, B, T values that shape frames.
Learn camera control in Unity 3D by rotating the player 45 degrees on the Y axis, applying quaternion rotation, and positioning the camera to look at the player.
Apply linear interpolation in Unity with a C# script to move a cube on the z axis from 0 to 10 using lerp and the a+(b-a)*t formula.
Convert horizontal and vertical input into a normalized movement vector and apply it to position. Rotate toward the movement direction using look rotation to align with the movement vector.
Set up a camera system with a virtual camera to orbit the player, integrating a new player model and a character controller for 360-degree rotation.
Enable camera movement in unity 3d by holding the right mouse button, adjusting x and y axis speeds with a cinemachine setup, and resetting when play ends.
Learn to move the player in the camera's direction by rotating input with the camera, using a normalized target direction on the XZ plane, and applying speed for consistent movement.
Replace the player's body with a character controller, remove the capsule, and use the controller's move and rotation to drive movement and orientation in a third-person setup.
Replace the capsule with the actual character model and configure the character controller, then import a free asset package from the Unity Asset Store and use the prefabs.
Create a dedicated player input script to capture horizontal and vertical input, expose a move input vector, and wire it to the player controller for movement.
Refactor move input to use a Vector3, mapping horizontal and vertical axes to the x and z components, multiply by input, and test in Unity to ensure smooth movement.
Learn camera-aligned player movement and set up the animator to switch running animations with blend trees, tuning speed for varied locomotion in Unity 3D and C#, RPG guide for beginners.
Master Unity's animator to build a state machine with transitions and speed-based parameters. Link idle, stance, and walk states to drive combat animations through exit-time rules.
Create and configure a new animator controller for the player, add idle and locomotion states, and drive transitions with a forward speed parameter to trigger running.
compute forward movement from input magnitude, scale by max speed eight, and feed to the animator using a private compute movement method with move towards and fixed delta time for smooth acceleration.
Learn to compute forward speed and implement acceleration and deceleration in Unity using fixed delta time, movement input, and constant values to control player motion.
Learn to compute and apply player rotation using movement input and camera direction, by calculating a target rotation with quaternions and updating transform rotation in fixed update.
Learn to debug Unity code with breakpoints and attach to the game. Inspect variables step by step, including movement and rotation calculations using quaternions and the immediate window.
Demonstrates how to compute and apply the player's rotation when the camera faces forty five degrees, using move input, camera direction, and look rotation to align forward movement.
Implement smooth player rotation in Unity by transitioning to a target rotation with quaternion methods, replacing abrupt turns with controlled interpolation. Expose max and min rotation speed as public variables.
Learn to smooth character rotation in Unity by detecting backward movement with dot product, flipping to the opposite camera direction, and applying target rotation to ensure seamless movement.
Change the animator settings to animate physics and apply motion from a script, using delta position to drive the player's movement each frame.
Create a locomotion substate machine and a blend tree controlled by the forward speed parameter to blend idle and sprint animations, then configure thresholds and transitions in the base layer.
Improve character animation fluidity in Unity by fixing locomotion transitions between the locomotion substate and base layer, using forward speed conditions to exit and blend animations smoothly.
Boost fps in Unity 3D games by adjusting quality settings in the project settings to medium or low, and enabling in-game options to improve performance.
Create a bandit character in Unity by selecting a prefab, adding a bandit behavior script, and integrating with a basic animator setup to enable gameplay interactions.
Learn how to access the player controller as a static instance in Unity 3D for a Bendit enemy AI, laying groundwork for the enemy detection range.
The lecture demonstrates detecting the player by locating the player, calculating the distance to the enemy on the xz plane, and triggering detection when within a configurable radius.
Learn to visualize an enemy's detection range in Unity by drawing a solid arc around the target in the editor using gizmos and a configurable angle and radius.
Compute the dot product between the enemy's forward vector and the player's normalized position to detect the player within a detection radius using the cosine of the half-angle, in Unity.
Explore enemy AI in a Unity 3D RPG starter course, teaching how to detect the player and follow within a configurable range, and how to configure navmesh surfaces for movement.
Implement player detection within range and guide enemies to pursue the detected player by retrieving the player's position, updating a target, and directing enemies toward the target's position in Unity.
Tune navmesh parameters by adjusting agent radius and height, set slope limits and step height, bake the navmesh, and test navigation across static structures.
Implement enemy pursuit in Unity by detecting the player within a range, assigning a target, and following the player until time since lost target reaches two seconds, then stop.
Animate enemies and implement a return-to-origin mechanic, including dragging enemies, following the player, and walking back when out of range, while introducing rotation handling.
Implement a stop-follow behavior for a bandit enemy in Unity 3D with C#, using a two-second wait, stopping the nav agent when out of range, then returning to start position.
Implement the near base parameter in Unity to detect when the enemy reaches its original position by distance to the base, using a 0.01 threshold to drive pursuit and idle.
Fix line endings in Unity projects by configuring your code editor to convert endings, align OS X and Windows formats, and reload the project to remove warnings.
Create a generic enemy controller in Unity to manage the agent and animator, decoupling movement from animation and deriving speed from the animator's delta position with a speed modifier.
Refactor the player scanner into a pure C# class, expose detection radius and angle, and implement a serializable scanner that looks for a player via a detector transform.
Set a stopping distance of 1.1 meters for the enemy to halt near the player, and trigger attack animations when within that attack distance using a public distance parameter.
Create an animator trigger named attack for Bendit, wire it from the behavior script to trigger the attack animation, and verify the parameter drives the attack state in Unity.
Configure the animator to trigger attacks when close to the player, linking idle and attack states and refining transitions to finish current attacks before returning to idle.
Refactor the enemy controller to manage follow target and stop follow target, controlling the agent's enabled state and animator-driven attack in Unity, clarifying destinations and range-based attack behavior.
Fix the attack distance in a Unity 3D RPG setup by using magnitude checks and range thresholds to switch from following to attacking, with proper stopping behavior.
Learn to return an enemy to its origin by rotating to its original rotation with quaternion origin rotation and RotateTowards, using magnitude checks and delta time.
Implement and track the player attack input by detecting the left mouse button, toggle an attack state, and wire it into the player controller with a timed reset.
Improve attack input handling in a Unity 3D C# RPG project by implementing a timed attack wait, state toggles for attack true/false, and an animation trigger to fire the attack.
Learn to implement a melee attack animation in Unity by configuring the animator with a military attack trigger, renaming parameters, and wiring locomotion and combat substate machines with transitions.
Create a damageable system in Unity by adding a damage script to the player and bandit, tracking hit points and enabling damage from melee combat.
Fix the bandit initial walk animation by setting the near base parameter to true by default in the animator (or via code). Prepare for the upcoming weapon system work.
What is Unity?
Unity is a cross-platform engine. The Unity editor is supported on Windows, macOS, and the Linux platform, while the engine itself currently supports building games for more than 25 different platforms, including mobile, desktop, consoles, and virtual reality.
What are we going to build?
The course covers the development of 3 games. Starting with basic concepts explained in a simple game and finishing with more advanced concepts by creating an RPG sandboxed game. The course covers a full explanation of programming methods and related mathematics concepts.
The course starts with easy concepts, targets beginner developers or developers new to Unity, and then slowly progresses into more complex topics.
Project 1 (Evade the cubes)
The first part of the course covers basic concepts. Students will get familiar with the Unity editor and environment.
Base game mechanics
Orientation in 3D space
Positions of game objects + Vectors
Simple movement system
Score system
Health system
Materials & prefabs
UI & Canvas
Project 2 (Platform Survival)
The second part of the course is focused on the physical system.
Rigidbodies
Physic system
Movement + rotations
Follow camera
Coroutines
Adding forces
Powerups
Enemies
Following targets
Project 3 (Rpg Adventure)
The last part of the course covers more advanced concepts and the development of sandboxed RPG games.
Character controller
Cinemachine
3rd person camera and full movement
Animations
3rd party packages & models
Fight system + Combos
Enemies + Detection system
Quest System
Level System
Health System
Dialog system
Respawns
Inventory System
Weapon equipping
Terrain design