
Learn to build a Unity 3D runner game inspired by Super Mario Run, with rightward progression, jumping, obstacles, enemies, and a flagpole at the end.
Explore the Unity editor, create a new 3D project, navigate the scene and game views, and manipulate objects with the inspector and transform components for cameras, lights, and level design.
Create a scripts folder and a C# game controller, attach it to a game object, and run to see Hello world with Start and Update and Debug.Log.
Learn to declare and initialize variables in Unity using public strings and integers, expose them in the editor, and print dynamic values with Debug.Log, such as the sum 42.
Create and call methods to organize code and promote reusability in Unity. Learn void methods with no return, pass and use parameters, return strings, and build messages for debugging.
Master for loops with initialization, condition, and increment in Unity to repeat actions and update a score counter, then explore while loops with booleans and random termination for spawning objects.
Create a player cube in Unity, attach a script, and move it with transform position and delta time, then rotate around the up axis with a configurable rotation speed.
Add a floor and a rigidbody, constrain movement to the x axis, and control velocity with a public speed for responsive runner movement in Unity.
Learn how acceleration increases the player's speed over time using delta time, clamps at a maximum movement speed, and understand how the camera follows the player.
Create a camera follow script in Unity that locks to the player's position, adds an offset, and uses Vector3.Lerp for smooth motion with a public game object target.
Learn to implement jumping in Unity platform games using a rigidbody and fixed update, applying vertical velocity when the mouse button or space bar is pressed.
Implement a jumping system with a private jump timer and a public duration, using Time.deltaTime to build higher jumps when holding the input, and resetting when the player lands.
Create a jumping area using a box collider set as a trigger, and tag it for the player to detect with on trigger enter, stay, and exit logic in Unity.
Implements a robust multiple-jump system by using boolean controls for canJump and jumping, detecting the jumping area tag, and applying hold-to-jump velocity for timed jumps.
Add walls and a wall jumping area to your level, configure a physics material with minimal friction, and implement wall jump logic that propels the player left or right.
Create materials for the player, floor, and wall in unity, apply orange, green, and brownish red colors, then drag them onto objects to prototype visuals.
In this lecture, we refine wall jump mechanics in Unity by freezing speed during wall jumping, resetting when exiting the wall state, and re-enabling movement after a jump button press.
Create a rotating coin in Unity that you collect to earn points; use a trigger collider to destroy it and use prefabs to easily populate multiple coins.
Learn to implement a Unity score system by moving score tracking to the game controller using callbacks and actions, updating on coin collection, and displaying it with UI text.
Build a Unity interface by adding a canvas and text with a font, anchor the score at the top left, and ensure it scales with aspect ratios 4:3 and 16:9.
Learn to build a destroyable brick in Unity: add a collider and jumping area, create a destructible area script, and arrange bricks and coin prefabs for a modular platform level.
Create a Unity brick that optionally spawns a coin using a prefab, a coin script for vanish after 0.3 seconds, and simple player interaction to collect coins.
Create a pause block in a Unity platform game, use a trigger collider to pause the player on contact, disable the collider afterward, and fine-tune movement logic.
Design and implement speed arrows in a Unity platform game by constructing simple cube-based arrows, adjusting scale and rotation, removing collisions, and converting them into reusable prefabs.
Create a speed area in Unity with a trigger collider and a speed area script, rotate arrows to show left or right, then prefab it for reuse.
Identify and manage player speed by detecting left and right speed areas with trigger enter and exit, using boolean flags to update speed and debug the values in the console.
Tune the player movement with left and right speeds, add movement speed left and movement speed right, and an acceleration for momentum to smoothly reach the target speed.
Learn to organize Unity scripts with property attributes like header and range to group movement variables, expose parameters in the inspector, and tune acceleration and speed for better game design.
Set up a long jump block in Unity with a trigger box collider, a long jump script, and switch the player's jump speed to long jumping speed inside the block.
Create a simple enemy in Unity using shared enemy script for enemies. Render it as a red cube with a box collider and left-right movement defined by speed and amplitude.
Implement enemy contact logic to kill the player using on trigger enter, a kill method, and a dead flag; stop movement, disable the collider, and apply a rigidbody impulse.
Restart the game by checking the player's death in the update method, counting down a three-second restart timer with delta time, and reloading the current scene via scene manager.
Add a destruction area with a box collider and a destroyer to trigger on kill, then share killing logic through a base enemy class and prefabs.
Design a shell enemy in Unity by cloning a simple enemy prefab and implementing a patrolling enemy script that moves left to right with adjustable speed and amplitude.
Fix jumping by adding an optional force parameter to prevent infinite jumps, then spawn a shell prefab on enemy death and rotate it on the y axis.
Program shell movement in Unity with transform.position along the x axis, enable collisions to destroy enemies and bounce on bricks using isTrigger and rigidbody.
Design a plant enemy in a Unity platform game by assembling cylinders into a pipe, adding materials and box colliders, and scripting vertical movement with a trigger for player death.
Implement plant movement in a Unity platform game by toggling between visible and hidden positions, to reveal as an enemy prefab using local position, movement speed, and a waiting timer.
Adjust the shell collision to destroy enemies when it hits a trigger, making the shell responsible for both bricks and enemies, while testing and iterating the gameplay.
Design a power up for a Unity platform game by creating a rotating power up object with a collider, material, and a particle system to signal invincibility or extra life.
Establish a power-up collection flow by detecting collisions via trigger enter, collecting the power-up, spawning a particle effect, applying the power-up to enlarge the player, and destroying the power-up.
Implement a coroutine-based invincibility routine lasting seconds after collecting a power up, using the power up flag and blinking visuals; ensure collisions with enemies respect invincibility.
Implement a Unity invincibility blinking effect by scripting the player model toggle, with 20 initial blinks split into 75 percent blinking and 25 percent faster blinking, ending when invincibility ends.
learn to create normal and power-up player models in unity, duplicate and customize height and color, and toggle active states to switch forms during gameplay.
Create a finish line with a flagpole and trigger collider, wire a finish line script, and integrate it with the camera, UI text, and level progression to end the level.
Explore parallax background techniques in a unity platform game by building layered mountains and clouds behind the floor using cubes, scaling, and simple materials.
Learn to implement a parallax background in Unity by writing a C# script that collects and manages background elements across layers.
Create an infinite parallax background in Unity by duplicating mountains, setting a 50 unit element size, and using a reference object with offset to recycle elements as the player moves.
Duplicate and resize clouds to create a parallax background, placing four clouds at offsets -60, -30, 0, and 30, then test across 16 by 9 and 4 by 3.
*We adjust the jumping area in the following lecture.
Adjust the jumping area after resizing the floor to align with the player, then move it forward and test in play mode to ensure the player jumps.
Create a functional main menu in unity by building a canvas UI, configuring the canvas scaler and reference resolution, and binding a button to load level 1 1.
Use anchors in Unity to bind UI elements—play button, help button, and credits text—to bottom corners, ensuring responsive layouts across 4:3 and 16:9 for web and mobile.
Implement a responsive health panel and help/instructions overlay in Unity, triggered by a help button, with canvas resizing, aspect-ratio handling, transparency, and a confirm button to close the panel.
Improve Unity collisions by replacing the box collider with a sphere collider to make movement forgiving and avoid stuttering across brick lines, while enabling capsule collider options.
Tune gravity in Unity by exposing a public gravity value on the game controller and applying it to the vertical axis in update to refine jumping and player control.
Tune vertical and horizontal wall jumping speeds for a precise, responsive wall jump. Refine these values by adjusting gravity and using public variables with clear headers and descriptions.
Tune brick destruction logic in Unity by updating the brick and player scripts to stop vertical velocity on destruction, preserving horizontal movement and disabling jumping until the floor is reached.
Master shell collision handling in Unity by using layers and a collision matrix to ignore area collisions, propagate changes to prefabs, and test with a timeout.
Create a Unity C# script to destroy a game object after a set number of seconds, attach it to a shell prefab, and verify the object vanishes during play.
Tune the player's jump height when hitting enemies by adding a public destroy enemy jumping speed, use it in the jump method, and remember editor values override code.
Enable gravity on the shell enemy with a rigidbody and use a non-trigger collider for proper brick collisions. Implement a radius tolerance to control flipping and test behavior.
Learn to implement shell gravity in a Unity platform game by refining collision logic so shells ignore players and destroyers, reflect on normal colliders, and clear enemies.
Adjust horizontal shell collision in unity by moving the logic from on trigger enter to on collision enter, removing the destroyer line and testing with the player and enemy.
Adjust the shell's collision in Unity by adding an ignore rule with a jumping area tag, preventing flipping when the shell reaches the jumping area and moves forward.
Learn to implement a singleton level manager in Unity to track the current world and level, providing a globally accessible instance to load levels and test progression.
Learn to manage and load levels in a Unity platform game by implementing a level manager, scene loading, and world/level tracking to load the current or next level.
Implement a Unity level progression system with a level manager that loads the next level, updates world and level names, and enforces a per-world level cap.
Duplicate levels carefully to maintain consistency, convert the player, backgrounds, and canvas elements into prefabs, organize assets, and save scenes before building to ensure uniform behavior across levels.
Design level 1-1 from a clean state, place floor and walls, set player at zero with gravity, position coins for jumping and scoring, add enemy, finish line prefab, and test.
Duplicate level 1 to create level 1-2, adjust lighting, place coin blocks and multiple enemies via prefabs, tune movement and placement, test in play, and finalize the finish line.
Build levels 1 through 3 by duplicating and lighting, adding walls for wall jumping, coins, long jumps, enemies, and a finish line, with no coding required.
Define maximum world and maximum level constants, validate loaded worlds and levels, route to main menu when bounds are exceeded, and reset to world 1 and level 1 when needed.
Learn to make games and 3D art! In this course, you build a 2D platform game from scratch and learn how to make 5 different game characters. ⭐ ⭐ ⭐ ⭐ ⭐
Sign up now to learn a skill no one can take away from you
This course does not assume any prior knowledge and is perfect for beginners. In fact, we begin with an introduction to Unity® for those who have never used it before.
Our course is unique because you will learn how to make your own 3D art, models, and textures in Blender. We will show you how to integrate the art into Unity®.
Included in this course is material for beginners to get comfortable with the interfaces. Please note that we reuse this content in similar courses because it is introductory material. You can find some material in this course in the following related courses:
Make a Unity Platform Game & Low Poly Characters in Blender
Make a Fully Featured Game: Code in C#, Make Low Poly Models
Make Games and Web Apps: Unity, React and Redux Masterclass
Build and model a Super MARLO runner clone in Unity
Build 43 Models & a 3D Runner Game in Unity® with C# Code
Ultimate Guide to Blender & Unity: Game Design & Development
Create Low Poly Game Characters in Blender3D
Everything You Need To Make Your Own Games
We take you through all the steps to designing a game from start to finish. This course covers topics including:
Movement
Blocks
Speed blocks and enemies
Power-ups and finish lines
Background and interface
Fine-tuning
Level design
Enroll now to join the Mammoth community