Unity Course

Tags:

Learn Unity in C# & Code Your First Five 2D Video Games for Web, Mac & PC. The Tutorials Cover Tilemap

Last updated 2022-01-10 | 4.7

- Learn C#
- a powerful modern language
- from scratch. No prior programming experience is necessary.
- Become excellent at using the Unity game engine.
- Build a solid foundation for game design and game development that will help you build your own games.

What you'll learn

Learn C#
a powerful modern language
from scratch. No prior programming experience is necessary.
Become excellent at using the Unity game engine.
Build a solid foundation for game design and game development that will help you build your own games.
Learn how object oriented programming works in practice.
Create playable game projects - good for your portfolio
or just for your own sense of achievement.
Transfer your knowledge from this course to .NET
other languages
and more.
Develop highly transferable coding problem solving skills.
Be part of an amazing and supportive community of people similar to you.

* Requirements

* Mac or PC capable of running Unity 2019 or later.
* A passion and willingness to learn how to code.

Description

The course has recently been remastered in Unity 2021.1.

This course started as a runaway success on Kickstarter and has gone on to become the most popular and most watched Unity game development course on Udemy. The course has full English closed-captions throughout.

Learn how to create video games using Unity, the world-leading free-to-use game development tool. We start super simple so you need no prior experience of Unity or coding! With our online tutorials, you'll be amazed what you can achieve right from the first moment you start the course. 

Benefit from our world-class support from both other students, and the GameDevtv team who are regularly engaged in the forums and Q&A section. Go on to build several games including:

  • Snow Boarder: A simple Side-Scrolling jumping game using Unity's sprite shape tool

  • Laser Defender: A Top-Down Space Shooter with enemies to shoot and dodge;

  • TileVania: A fast-paced classic Side-Scrolling Platformer using Unity's Tilemap tool;

  • Quiz Master: A Quiz Game that focuses on learning how to set up user interface in Unity.

Prefer to start with 3D games? Check-out our sister course, the Complete C# Unity Developer 3D. Already have some Unity knowledge, and want something more challenging? Check-out our epic RPG Core Combat Creator. More interested in creating 3D models from scratch? Start with our Complete Blender Creator course. Our green leaf logo is a symbol of passion and quality.

You will have access to a course forum where you can discuss topics on a course-wide basis, or down to the individual video. Get plugged into our communities of amazing developers on Facebook (nearly 20k), in our own TA-curated Community (17k views/day), and our student chat group (10k live at any one time). Check out our reviews to see how people love this feature. 

The course is project-based as we believe this is the best way to learn Unity and C#. You will not just be learning dry programming concepts, but applying them immediately to real indie games as you go. All the project files will be included, as well as additional references and resources - you'll never get stuck. There are talking-head videos, powerful diagrams, quality screencasts and more. 

Oh, and it's just bigger and better than other Unity courses you will find online. See the course length and the reviews. 

For each demo game you build you will follow this process... 

  • Be challenged to build the entire game yourself.

  • Be shown step-by step how to build it.

  • Be challenged to apply, and re-apply your knowledge regularly.

You will get full lifetime access for a single one-off fee. The creators are qualified and experienced coders and avid gamers, so are able to explain complex concepts clearly, as well as entertain along the way. 

You will learn C#, and in turn build a solid foundation for Object Oriented Programming. By the end of the course you'll be very confident in the basics of coding and game development, and hungry to learn more. 

What this course DOESN'T cover... 

Whereas this course is already huge, we can't possibly cover everything in that time. Here are some things we will not be covering... 

  • Performance optimization.

  • Editor plugins or modifications.

  • Physics engine modification

Anyone who wants to learn to create games: Unity is a fantastic platform which enables you to make production-quality games. Furthermore these games can be created for Windows, MacOS, iOS, Android and Web from a single source!

If you're a complete beginner, we'll teach you all the coding and game design principles you'll need. If you're an artist, we'll teach you to bring your assets to life. If you're a coder, we'll teach you game design principles. 

Dive in and learn Unity now, you won't be disappointed!

Who this course is for:

  • Competent and confident with using a computer.
  • Some programming experience helpful, but not required.
  • Artists who want to learn to bring their assets into games.
  • Complete beginners who are willing to work hard.
  • Developers who want to re-skill across to game development.

Course content

8 sections • 138 lectures

Welcome To The Course Preview 00:53

In this video (objectives)…

  1. Welcome to the course, lets get started.

New Updated Content Preview 00:43

Install Unity & VS Code Preview 05:31

In this video (objectives)…

  1. We're using Unity 2021.1 and Visual Studio Code in this course. Let's download and install them.

Introducing Unity Preview 11:57

In this video (objectives)…

  1. For those new to Unity we'll take a quick tour around the interface and create a fun little pretend platformer scene.

Set Up Visual Studio Code Preview 09:09

In this video (objectives)…

  1. We need tell Unity to use our preferred code editor and for those of us using VS Code, we'll be adding the required extensions. We'll write our first code using Debug.Log() to print to the console.

Community & Support Preview 01:32

In this video (objectives)…

  1. Lucy invites you to join us in our various community support forums in order to ask questions, connect with other students and share your progress.

Links & Resources Preview 01:05

In this video (objectives)…

  1. This article lecture shares with you all the relevant links and details for getting support, asking questions and accessing resources provided by your instructor.

Accessing Our Projects Preview 04:38

In this video (objectives)…

  1. Any time we change our project during a lecture we will commit that change to a public source control repository for students to access. In this video we show you how to access that content.

Section Intro - Delivery Driver Preview 00:54

In this video (objectives)…

  1. We overview what we'll be covering in this section of the course.

Game Design - Delivery Driver Preview 03:54

In this video (objectives)…

  1. Let's look at the specific game mechanics and design we'll be implementing for this game.

Introducing Methods Preview 11:59

In this video (objectives)…

  1. In this lecture we introduce methods and take some time to understand the difference between the Start() and Update() callbacks.

Transform.Translate() Preview 03:49

In this video (objectives)…

  1. In addition to rotating our object we want to move it forwards. We'll do this by using Tranform.Translate().

Introducing Variables Preview 06:22

In this video (objectives)…

  1. Variables are a critical aspect to any code so in this lecture we'll discuss how to use variables and specifically how to type them in C#.

How To Use SerializeField Preview 04:03

In this video (objectives)…

  1. To make our game easier to tweak and tune we can add SerializeField as an attribute to make our variables visible in the Unity Inspector.

Using Input.GetAxis() Preview 10:26

In this video (objectives)…

  1. Its time to make our vehicle respond to player input. We'll quickly set up the inputs using the "old" input system.

Using Time.deltaTime() Preview 05:09

In this video (objectives)…

  1. Currently our game will work differently on everyone's computer because its not framerate independent. We use Time.deltaTime to make our car drive in the same manner on all computers.

Colliders & Rigidbodies Preview 08:28

In this video (objectives)…

  1. To change our game from basic images moving around to objects which can bump into each other we need to understand Colliders and Rigid Bodies.

Using OnCollisionEnter2D() Preview 06:30

In this video (objectives)…

  1. When we bump into things we can make other things happen in our code using OnCollisionEnter2D().

Using OnTriggerEnter2D() Preview 05:18

In this video (objectives)…

  1. If we want to make things happen in our game when we pass through an area or through another object we can use OnTriggerEnter2D().

Add Assets To Project Preview 09:31

In this video (objectives)…

  1. We bring in some simple car game images into our game and play around with the pixels per unit settings to make sure our objects are the right size.

Basic Level Layout Preview 07:32

In this video (objectives)…

  1. Let's make our level a bit more interesting by creating a simple level layout using our assets.

Simple Follow Camera Preview 12:11

In this video (objectives)…

  1. In this lecture we create a simple follow camera by telling the camera to use the same position as the player's car. We also need to add an offset so that camera is not right on top of the car by creating a new Vector3 value.

If Statements & Tags Preview 10:11

In this video (objectives)…

  1. We need a way of doing something only if we collide with our package trigger and only if we collide with our customer trigger. The tools we'll be using will be if statements and tags and also take a first look at the == operator.

How To Use Bools Preview 04:59

In this video (objectives)…

  1. Bools are very helpful, especially when combined with if statements. We create our first bools to make sure we can only deliver a package if we've first picked on up.

How To Destroy Objects Preview 07:04

In this video (objectives)…

  1. After we pick up a package we want it to disappear, so we're going to use the Destroy() method to remove our package game objects after we've collided with them.

How To Use GetComponent Preview 10:30

In this video (objectives)…

  1. To give the player feedback regarding whether they have the package or not we'll change the color of our vehicle by modifying the Sprite Renderer component. To do this we'll learn how to use GetComponent.

Boosts & Bumps Preview 09:32

In this video (objectives)…

  1. In this lecture we wrap up our functionality by adding a boost pad we can drive over and a condition where bumping into obstacles will slow the vehicle.

Wrap Up - Delivery Driver Preview 00:44

In this video (objectives)…

  1. We're done with this section - we've created a fun little driving game and learned some of the fundamentals of C# programming.

Section Intro - Snow Boarder Preview 00:38

In this video (objectives)…

  1. In this section we'll be using sprite shapes, effectors, particle effects and more.

Game Design - Snow Boarder Preview 02:14

In this video (objectives)…

  1. Its good to start with the design and technical requirements for a project and that is precisely what we'll do in this lecture.

How To Use Sprite Shapes Preview 09:53

In this video (objectives)…

  1. To create a free-flowing organic level in our game we can use Unity Sprite Shapes. In this lecture we create a Closed Sprite Shape and Sprite Shape profile as well as import a basic set of assets we can use in our project.

Using Edge Colliders Preview 07:08

In this video (objectives)…

  1. Edge Colliders are intended to follow a shape exactly which makes them the perfect way for us to keep objects on our track.

Cinemachine Follow Camera Preview 07:08

In this video (objectives)…

  1. Cinemachine is a powerful package that allows us to create virtual cameras. In this lecture we'll create a follow camera using Cinemachine.

Set Up Our Character Preview 07:07

In this video (objectives)…

  1. Instead of a ball rolling around we want a snow boarder to be sliding around our level, so in this lecture we'll set our 'Barry' our brave snow boarder.

Using Surface Effector 2D Preview 06:19

In this video (objectives)…

  1. Surface Effectors act like a conveyor belt and are a quick an easy way to move our character along the path.

AddTorque To Rotate Preview 12:15

In this video (objectives)…

  1. We can spin our character in a few different ways, but the best is going to be by using the AddTorque() method to apply rotational force to the game object.

Triggers To Restart Level Preview 10:02

In this video (objectives)…

  1. We need a win condition and lose condition so in this lecture we'll create a finish line and crash detection.

NameSpaces & SceneManagement Preview 10:28

In this video (objectives)…

  1. To restart the game we'll use SceneManager.LoadScene(). To access this we need to use the SceneManagement name space, so we'll be discussing how namespaces work.

Using Invoke() For Delays Preview 05:36

In this video (objectives)…

  1. Our level loads immediately upon the collision event, however we want a short delay. To do that we'll use Invoke().

Introducing Particle Effects Preview 13:39

In this video (objectives)…

  1. Particle systems can add a lot of polish to our game, so we're going to experiment with creating a couple of cool particle effects.

Triggering Particle Effects Preview 07:27

In this video (objectives)…

  1. We'll add code to our scripts so that we can play our particle effects at the right time.

Take A Moment To Tune Preview 06:56

In this video (objectives)…

  1. It's time to tweak our game to make it more playable and look a bit better.

Using FindObjectOfType Preview 10:19

In this video (objectives)…

  1. FindObjetOfType is another approach we can use to set a reference to a component or object.

Using OnCollisionExit2D Preview 09:28

In this video (objectives)…

  1. We add some dust particles to our snow board and turn them on and off depending on whether or not we are touching the ground.

How To Trigger Sound Effects Preview 07:47

In this video (objectives)…

  1. We add 2 sound effects to our game and look at 2 slightly different ways of playing clips.

Public Access Modifier Preview 09:03

In this video (objectives)…

  1. Public methods can be accessed from other classes. In this lecture we use a public method to stop the player being able to control their character.

Prevent Double Play Preview 03:21

In this video (objectives)…

  1. We have a minor issue that the player can bounce and trigger multiple SFX and particle effects when crashing. We'll set ourselves a challenge to stop that.

Wrap Up - Snow Boarder Preview 00:39

In this video (objectives)…

  1. We wrap up this section and get ready for the next one.

Section Intro - Quiz Master Preview 01:15

In this video (objectives)…

  1. Check out what we'll be making in this section of the course!

Game Design - Quiz Master Preview 05:04

In this video (objectives)…

  1. Lets begin where every game should - with the game design document - and understand the features and mechanics that we'll need for our quiz game.

UI Canvas Preview 12:34

In this video (objectives)…

  1. The first step towards building our game is to add a UI canvas and background image.

TextMeshPro Preview 11:26

In this video (objectives)…

  1. UI text comes in many different styles. Let's add the game title and make a home for the question text.

Button Layout Preview 09:53

In this video (objectives)…

  1. Buttons will allow the player to interact with our game. Let's add some to our canvas and organize them with using a layout group

Scriptable Objects Preview 11:11

In this video (objectives)…

  1. Scriptable object are a great way to store data, so let's use them to store our question data.

Arrays Preview 09:53

In this video (objectives)…

  1. A question is nothing without an answer, so let's look at how to store our quiz answers efficiently by using an array.

TextMeshProUGUI Preview 05:20

In this video (objectives)…

  1. It's time connect our scriptable objects to our UI. Let's start by learning how to set the text field of the TextMeshPro component in code, using TextMeshProUGUI.

For Loops Preview 09:28

In this video (objectives)…

  1. It's time connect our scriptable objects to our UI. However, before we can connect our answers to the buttons, we're going to need to learn about for loops.

Swapping Sprites Preview 10:58

In this video (objectives)…

  1. Once the player has selected an answer, it would be nice to tell them if they got it right. To do this, we're going to swap the sprite for the button holding the correct answer and replace the question text with a confirmation message.

Button States Preview 10:32

In this video (objectives)…

  1. After the player has selected an answer, they can continue to click on the other answer buttons. Let's put a stop to that by changing the interactable state of the button.

Simple Timer Preview 11:14

In this video (objectives)…

  1. To move the player on to the next question, we're going to implement a turn-based style timer - giving the player a fixed amount of time to answer the question and a fixed amount of time to review the answers.

Connecting the Timer Preview 10:05

In this video (objectives)…

  1. With our timer logic set up, let's connect it to our game and finally see it in action!

Lists Preview 10:46

In this video (objectives)…

  1. It's finally time to add some more questions to the game! We could use an array to store them, but let's use the more flexible 'List' instead.

Keeping Score Preview 10:12

In this video (objectives)…

  1. There are many different types of scoring system in games but they all serve a similar purpose - to show the player how well they're doing. For our game, let's look at showing the player how many questions they got right as a percentage.

Sliders Preview 08:50

In this video (objectives)…

  1. We use a UI slider to act as a progress bar, to show the player how far they are through the quiz.

End Screen Preview 07:50

In this video (objectives)…

  1. Test your knowledge by creating a new canvas that will display the player's final score once the quiz is complete.

Game Manager Preview 11:13

In this video (objectives)…

  1. Our game is almost finished! We just need a way to; transition between our quiz and end screens, and reload the game if the player wants to play again. We will also fix a few minor bugs by learning about the Awake() method.

Section Wrap-Up Preview 01:12

In this video (objectives)…

  1. Our UI focused quiz game is now complete! Along the way, we learn how to; store data using scriptable objects, loop through lists and arrays using a for-loop, and reload our scenes so the player can try again without having to reload the game.

Section Intro - TileVania Preview 00:38

In this video (objectives)…

  1. In this section we'll be using Tilemap to create a 2D sidescrolling platformer.

Game Design - TileVania Preview 05:10

In this video (objectives)…

  1. We look at the core design for this project and outline what features we need for our minimum viable product.

Slicing Sprite Sheets Preview 10:42

In this video (objectives)…

  1. We've brought some sprite sheets into Unity, we now need to slice them up for our use.

Introduction To Unity Tilemap Preview 11:08

In this video (objectives)…

  1. Tilemap is a powerful tool for creating 2D games. In this lecture we understand the main aspects of Tilemap and get started using it.

Unity Tilemap With Layers Preview 07:47

In this video (objectives)…

  1. Our level is going to have many layers to it - platforms, background, water, pickups, etc. In this lecture we look at how to create multiplayer layers using Tilemap and sorting layers.

How To Use Unity Rule Tiles Preview 15:11

In this video (objectives)…

  1. Unity Rule tiles are a powerful way for us to paint a tileset and have them automatically recognise edges, corners, and other elements and display the correct art asset. This involves setting up the logic, or rules, for our rule tile.

Create Player Idle Animation Preview 10:15

In this video (objectives)…

  1. We use 4 of the sprites from our spritesheet to create an idle animation for our player. This involves setting up an animator controller and creating an anim file.

Animation States & Transitions Preview 08:10

In this video (objectives)…

  1. We implement our running and climbing states and add the appropriate animations for each. We set up parameters that can be used as conditions to transition from one state to another.

Using Prefabs In Unity Preview 10:13

In this video (objectives)…

  1. We play around with prefabs and learn the basics of how they work.

Composite Collider For Tilemap Preview 05:27

In this video (objectives)…

  1. We add collision for our player and for our platforms. To do this we'll need to use a composite collider and a tilemap collider.

Set Up Input System Preview 08:55

In this video (objectives)…

  1. We'll set up our input system using the Messages option and add an additional input action with key bindings.

Horizontal Player Movement Preview 06:21

In this video (objectives)…

  1. Now that we have the basic input system being received we need to turn that into player movement by adding velocity to the player's Rigidbody.

Flip Player Sprite Preview 06:39

In this video (objectives)…

  1. We flip our player sprite by looking at our velocity and seeing what direction we are running in. This will involve using Mathf.Abs, Mathf.Sign and Mathf.Epsilon

Animation State In Code Preview 03:59

In this video (objectives)…

  1. We change the state of our animation with the animator control based upon whether the player is moving the player and it therefore has velocity.

Jumpy Jump Preview 07:22

In this video (objectives)…

  1. We'll create our OnJump() method which can be called when our Jump action button is pressed, resulting in our player jumping. We'll also play with gravity and movement speed to get the tuning as we'd like.

Jump If IsTouchingLayers Preview 06:58

In this video (objectives)…

  1. To remove the issue of our player being able to spam the jump button and fly way off the screen we need to check if they are touching the ground by using Collider2D.IsTouchingLayers().

Climb That Ladder Preview 09:50

In this video (objectives)…

  1. We need to check if the player is touching a ladder and create code to allow vertical movement in that moment.

Stop Sliding On Ladder Preview 03:51

In this video (objectives)…

  1. Our player slowly drifts down to earth while on the ladder. Instead of this behaviour we want the player to stay where they are and not slide.

Ladder Climb Animation Preview 05:17

In this video (objectives)…

  1. When our player is running up or down the ladder we want to play our climb animation.

Cinemachine Follow Camera Preview 03:41

In this video (objectives)…

  1. Let's set up a follow camera with some dampening to soften our jump. We'll use a Cinemachine virtual camera to do this.

Cinemachine Confiner Preview 06:37

In this video (objectives)…

  1. We set up a way to limit how far a camera can travel using the Cinemachine Confiner Extension.

State-Driven Cameras Preview 09:24

In this video (objectives)…

  1. Cinemachine makes life super easy for us to transition between different cameras based upon our animation state. We set up a few cameras that will blend from one to another based upon our actions.

Using Physics Material 2D Preview 09:13

In this video (objectives)…

  1. We'll change the friction and bounciness of two Physics Material 2D materials so that we can create bouncy mushrooms and so we can stop the player sticking to the wall.

Prevent Wall Jump Preview 05:27

In this video (objectives)…

  1. We set up a feet collider and use that to check if the player is able to jump.

Set Up Our Enemy Preview 06:03

In this video (objectives)…

  1. We add all of the components and base animation to get our enemy ready for movement.

Move & Flip Enemy Preview 10:13

In this video (objectives)…

  1. We give our character a reverse periscope(TM) and use OnTriggerExit2D() to let it know that its time to turn around and move the other direction.

Player Mortality Preview 05:07

In this video (objectives)…

  1. We start our player death functionality by stopping the player from being able to move after the collide with an enemy.

Player Death State Preview 07:00

In this video (objectives)…

  1. We continue with our player death functionality by changing the animation and triggering a death reaction when colliding with the enemy.

How To Create Hazards Preview 08:53

In this video (objectives)…

  1. Creating hazards requires a new tilemap with rules for what happens to the player when colliding with anything on that layer.

Instantiate Bullet From Gun Preview 07:41

In this video (objectives)…

  1. The first part of shooting is to simply instantiate a bullet from the player's gun.

Implement Bullet Behaviour Preview 12:01

In this video (objectives)…

  1. We make our bullet fly across the screen, kill the enemy and destroy itself after colliding with anything.

Create Some Levels Preview 07:26

In this video (objectives)…

  1. We need some levels for upcoming lectures where we'll be loading from one level to the next.

Level Exit Portal Preview 14:50

In this video (objectives)…

  1. When we reach the end of a level we want to teleport to the next level (ie. load a new scene).

Game Session Controller Preview 12:24

In this video (objectives)…

  1. We use a singleton pattern to ensure that certain things persist from one scene to the next.

Make A Coin Pickup Preview 06:32

In this video (objectives)…

  1. We add a coin in our game with some animation and have the player "pick it up" by destroying the game object when the player touches it.

Coin Sound Effect Preview 05:30

In this video (objectives)…

  1. Let's make our coin pickup play some SFX when we pick it up.

Persistent Score & Lives Preview 13:15

In this video (objectives)…

  1. We add lives and score to our game session script so that we can have them persist when the player dies.

Scene Persist Preview 10:12

In this video (objectives)…

  1. The last "remembering when die" thing we need to work on is making sure that our coins remember being collected.

Prefab Variants Preview 06:34

In this video (objectives)…

  1. Prefab variants are a useful way for us to create variety for the player.

TileVania Wrap Up Preview 01:00

In this video (objectives)…

  1. There is plenty more we could add to this section, but we're done for now.

Section Intro - Laser Defender Preview 01:21

In this video (objectives)…

  1. Take a look at what we'll be making in this section of the course!

Game Design - Laser Defender Preview 07:28

In this video (objectives)…

  1. It's time to create our game design document! Let's look at the game mechanics and features that we'll be implementing for this game.

Project Setup Preview 13:24

In this video (objectives)…

  1. Let's take a moment to set up our project, re-organize the editor, and import all the packages and assets that we need for our game.

Unity Input System Preview 12:24

In this video (objectives)…

  1. Let's get familiar with the new Unity input system and get our player moving around on screen.

Boundaries Preview 11:14

In this video (objectives)…

  1. We need to clamp the player movement, so that they can't fly off screen. To do this we need to understanding the viewport.

Enemies Preview 10:51

In this video (objectives)…

  1. Implementing our enemies will involve multiple scripts talking to each other. Let's look at how this is going to work and start create the wave config data to store our enemy paths.

Pathfinding Preview 07:04

In this video (objectives)…

  1. With our WaveConfigSO scriptable object started, we can look at making our enemy follow the stored path.

Instantiating Enemies Preview 11:38

In this video (objectives)…

  1. With existing enemies now moving along our path and be destroyed at the end, let's start instantiating new enemies at runtime.

Coroutines Preview 11:18

In this video (objectives)…

  1. We can now spawn enemies into our world but they all arrive at the same time. However, we can delay their arrival by using a coroutine.

While Loops Preview 05:21

In this video (objectives)…

  1. Unlike for-loops, while loops don't always run for a fixed number of iterations. Let's create an infinite number of enemy waves!

Taking Damage Preview 10:46

In this video (objectives)…

  1. To make our game fun we need a way for the player to get hurt. So let's add a health and damage system.

Projectile Setup Preview 11:06

In this video (objectives)…

  1. Before we start generating projectiles at run time, let's do a bit of prep work to get things ready and save ourselves some future headaches!

Player Shooting Preview 14:23

In this video (objectives)…

  1. We create a shooting mechanic that is adaptable enough to be used by both the player and the enemy. To start with, we'll just get our player shooting.

Enemy Shooting Preview 10:19

In this video (objectives)…

  1. We modify our current shooter script, so that the same code can be be used by the enemies.

Particle Effects Preview 12:38

In this video (objectives)…

  1. Our core gameplay now works but the game itself is not very exciting. To help sell the experience we're first going to add some explosions with a particle system!

Screen Shake Preview 09:53

In this video (objectives)…

  1. Screen shake can really help sell an impact but it is something we should use sparingly. We will use it as a warning, to let the player know when they have received damage.

Scrolling Background Preview 09:12

In this video (objectives)…

  1. We continue to add polish to our game by making a parallax scrolling background.

Sound Effects Preview 11:15

In this video (objectives)…

  1. It's time to add some sound effects to our game, so let's look at how we can play audio clips at runtime.

Music Preview 07:45

In this video (objectives)…

  1. With our sound effects working, now let's add some background music and understand how Unity actually handles audio.

Keeping Score Preview 06:59

In this video (objectives)…

  1. Before we work on our UI, let's create a scoring system for our game.

Game UI - Part 1 Preview 10:18

In this video (objectives)…

  1. Our level is almost complete but it's missing one important piece - the UI. Let's add a simple UI to display the player's health and score.

Game UI - Part 2 Preview 05:40

In this video (objectives)…

  1. With our UI design sorted, it's time to hook things up so that the UI updates at runtime.

Adding Scenes Preview 10:59

In this video (objectives)…

  1. Our core gameplay is finished but the game never really ends. So let's add a main menu and end screen to our game.

Level Manager Preview 12:07

In this video (objectives)…

  1. We look at the Unity build order, the scene management system, and start transitioning between the scenes in our game!

Singleton Pattern Preview 10:45

In this video (objectives)…

  1. It would be nice if our music could ignore the scene transitions and play continuously. We can do this by implementing a version of the singleton pattern.

Singleton Scorekeeper Preview 09:17

In this video (objectives)…

  1. We solve the final technical issue with our game, which is to display the score on the game over screen.

Balance and Build Preview 15:08

In this video (objectives)…

  1. With our core gameplay finished it's time to balance the final gameplay experience and build our final project so others can play it.

Section Wrap-Up Preview 00:49

In this video (objectives)…

  1. Congratulations on completing your arcade shooter game. Along the way we learnt about; scriptable objects, instantiating objects at runtime, while loops, coroutines, adding particle effects, playing audio, and how to use the singleton pattern

Coupon For Original Course Content (Created In Unity 2018) Preview 00:31

This lecture explains how to get access to the original Unity content for this course.

BONUS LECTURE Preview 00:22

Credits Preview 04:48

Thank you to all the amazing people who backed us during our Kickstarter!