Complete Unity 2018 - Coding Games in C#
3.9 (21 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,727 students enrolled

Complete Unity 2018 - Coding Games in C#

Code and build your way to a finished 2D cross-platform game with a wide variety of core game development topics
3.9 (21 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,727 students enrolled
Created by Chris Navarre
Last updated 3/2019
English [Auto]
Current price: $25.99 Original price: $39.99 Discount: 35% off
2 days left at this price!
30-Day Money-Back Guarantee
This course includes
  • 8 hours on-demand video
  • 2 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Build a 2D game with working physics, enemies, and projectiles
  • Create triggers and events to make the game progress at the right time
  • Work with sprite renderers to achieve appealing visual effects
  • Save and load game data from and to files
  • Manage player inventories with item pickups or powerups
  • Loosely couple your scripts with dependency injection for better code management
  • Run tests on your game without hitting play every time with the Unity Test Runner
Course content
Expand all 49 lectures 08:04:26
+ Basics of Unity 2018
4 lectures 28:43

A comparison of GameObjects and Components - two central concepts within the unity game engine. This video explains how the two work together to create functioning players, enemies, and other game world entities.

Preview 05:46

Everything in the hierarchy is a GameObject but there are still some important distinctions between those that go on the Canvas UI and those that exist within the game world and interact with your player.

Differences between Canvas GUI Elements and Gameplay Objects

UI Components Covered: Canvas, Panel, Text, Image, Raw Image, Button, Toggle, Drop Down, Input Field, Scroll View. We cover the basics of how to use each of these and what settings you'll find inside the inspector for them

Preview 12:43
MonoBehaviours and Unity Lifecycle Hooks (Update, Start, Awake)
+ Scriptable Objects (C#)
6 lectures 39:18

A unity class that's NOT based off of MonoBehaviour. These are stored as actual asset files inside of your project and can be referenced from other script fields.

Scriptable Objects Introduction
Random Color Changing - Simple Beginners C# Script
Adding Timer to Random Color Change Script - Tracking deltaTime in Script

These tutorials show how to create an inventory system utilizing game items stored in scriptable object asset files. The game items can be easily referenced from a player's inventory, a shops inventory, or game objects to be picked up during gameplay.

Preview 04:29

These tutorials show how to create an inventory system utilizing game items stored in scriptable object asset files. The game items can be easily referenced from a player's inventory, a shops inventory, or game objects to be picked up during gameplay.

Nested Scriptable Objects & Adding Objects to MonoBehaviour Scripts in Inspector

These tutorials show how to create an inventory system utilizing game items stored in scriptable object asset files. The game items can be easily referenced from a player's inventory, a shops inventory, or game objects to be picked up during gameplay.

Creating Shops & Shop Inventory from ScriptableObjects
+ Pixel Art Tools (Aseprite)
2 lectures 12:56

Comparison of these two modern tools for creating and animating pixel are for games (or just art in general) (also on Steam)

I also mentioned Tiled - that's here for making maps from your tilesets

Aseprite vs Pyxel Edit - Pixel Art Tool Comparison

Learn how to add new color palettes into your copy of Aseprite, a great pixel editor available on steam.

Palettes available at for free.

Import and Create Custom Color Palettes
+ 2D Visuals inside of Unity Engine
6 lectures 37:58
Best Way to Import 2D Sprites & Pixel Art

Let your character go in front of or behind objects depending on their vertical Y position in your game. This simple code lets all of your objects sort out which one is suppose to show in the front.

Preview 04:14

This is how you can 'bake' shadows for your 2d sprite objects in Unity. It's important if you want the shadow and the object to display differently in terms of rendering order.

Create Shadows for 2D Game Sprite Images

Easily add baked (or realtime) lighting to 2D Sprite Renderers and Tilemap Renderers

Baked Lighting for 2D Pixel Sprite Games

If you want a more complicated scrolling BG, would be another good tutorial to watch.

Make a Simple 2D Tiled Background

Hiding parts of an animation from the game camera using sprite masks (a lot like layer masks in Photoshop / Gimp)

Hide Part of Sprite Animation with Sprite Mask
+ Dynamic Rigidbody Movement
3 lectures 38:58

Learn how to move an object by getting axis input and adding forces to a dynamic Rigidbody. The best advantage of dynamic rigidbodies is that you'll have built in collisions and gravity.

How to Move Left and Right with Input & Rigidbody 2D Forces

Stop your characters from moving at infinite speeds. Set a limit to cap their movement speed after accelerating to a certain velocity with Rigidbody 2D force mechanics.

Limit Run Speed Velocity Cap

Add the ability for your characters to jump with an instantaneous force like Mario and many other platformers. Check if the player is standing on ground or not to know whether they should be allowed to jump or not. Allow jumps only on collidable ground objects!

Jump Forces and How to Check If Player is Standing on Ground Collider
+ 2D Kinematic Movement
2 lectures 08:50

Use Collider.Cast(Position, Filter, Hits, Distance) to easily check for collisions on 2D / 3D Colliders like BoxColliders or Capsule Colliders. If you're using Raycast for collisions on a box, you're probably doing it wrong (casting out a line vs casting out a box bounds) - This method will help your make sure the collision hits on outer edges too.

Collider.Cast - Best Easy Way to Check for Collision

Learn how to eliminate jitteriness in 2d pixel art games made in Unity. Include this function as part of your character movement scripts.

Call it on both the move vector and the current location vector (position) before setting the final updated move location.

Eliminate Jitter by Clamping to Sprite Pixels
+ Making Projectiles
4 lectures 01:04:17

Scripts / Sample Scene:

Create animation for a projectile from a spritesheet inside of Unity 2018.

Fireball: Setup for Spritesheet Animation

Scripts / Sample Scene:

Make a projectile move on its own and trigger collide with player characters. Also, have it play a sound on collision as a bonus.

Creating a Fireball Projectile with Movement, Collision, and Sound

Learn how to add projectile forces to dynamic Rigidbody objects, make them move on a curve, and how to knock back those objects at the sender. In this example, the projectiles will curve due to gravitational forces added by Unity. Next video is how to curve movement with Kinematic rigidbody objects.

Projectile Physics Guide - Curved Path & Returning Projectiles Back

If you want to perfectly control how a gameobject with a rigidbody will move, then using animation curves is a great way to do it. Using this technique, you can move kinematic rigidbodies in a curved arc over time and control how it will move by setting points and handle on ease curves in the inspector. Probably the easiest way to curve an object's movement without using Dynamic rigidbody physics.

Control Kinematic Object Movement with Animation Curves (The C# Class)
+ Making UI Menus
9 lectures 01:48:13

Making a sample main menu screen with New Game, Load Game, and Exit Game buttons. This part covers the setup of the UI components for the screen.

Preview 10:08

Learn how to code menu buttons on the main menu screen so that they can do functions like start a new game, open the load game menu, and exit the game.

Make a Main Menu Screen - Part 2 Coding Menu Buttons

Open the load menu through the main menu screen, add in titles and a close menu button to the load menu so that it can close after being opened. Wrapping up the 3 part mini series on making a Main Menu Screen. Briefly covers creating scenes and adding new scenes to the game build.

Make a Main Menu Screen - Part 3 Load Menu Popup, Close Menu Button
Pause Menu Prefab & Menu Manager - Part 2 MonoBehaviour Manager Script

Converting a MonoBehaviour Manager / System into a Singleton Manager for the Game Menus is what this episode is about.

MenuManager Singleton Code

Menu Prefabs & Manager - Part 3 Singleton System - Unity 2018 Tutorial

We focus on getting the functions that our menus need to operate setup inside of the Singleton system script.

MenuManager Singleton Code

Menu Prefabs & Manager - Part 4 Seperating Data from Singleton System

Wrapping up the series - setting the function on the buttons from within the Singleton code. We talk about how you can check for the menu type and add custom functionality to each one depending on it's type. All code decoupled from the menu objects themselves save for button references.

MenuManager Singleton Code

Menu Prefabs & Manager - Part 5 Control UI Menus in Singleton System

Learn how you can allow your players to modify the positions of GUI elements like a health bar inside of your game's options menu.

Customize GUI Positions in Options Menu
+ Audio
1 lecture 05:16

7 Examples ►► 

Make a sound effect for every c h a r a c t e r in your game dialog for classic 2D style sprite games. This is basically the Phoenix Wright, Harvest Moon, or Banjo Kazooie Dialog Talking effect.

Create Character Talking Blip Sound Effects in BFXR
+ Events
3 lectures 26:56

Create an army of things! This video covers instantiate in script and getting the mouse cursor position in terms of game objects rather than Canvas UI pixels.

Preview 07:42

How to interact with events inside of C# scripting and the inspector for components like Buttons and Toggles

Actions on Event Triggers Script & Inspector

Here's my animated 2D door for Unity Games. It allows player objects to trigger the door to open by walking on a trigger zone and close when all objects have left the trigger zone. It can play audio sounds when opening and closing and comes setup with my sample animations. 

Animated 2D Door Trigger with Example & Scripts
  • Unity 2018 or Above
  • An image editing program like Photoshop, Pyxel Edit, or GIMP to create or edit your sprites in
  • Knowing a little bit of programming and C# will help a lot

Learn the ins and outs of building 2D games in Unity 2018 from the ground up. We will cover working in the engine, GameObjects & Components in detail, many coding topics, and building art assets from a technical perspective.

We will start from basics and there will be example scripts for you to download, test, and use if you wish throughout many of the tutorials provided in the course.

With a focus on coding, I will be showing you advanced techniques such as Dependency Injection to make your scripts more loosely coupled and easier to make changes to later on and Unit testing through the Unity Test Runner.

Several external tools will be covered as well to help you in creating your game (Pyxel Edit for Pixel Art, BFXR for Sound Effects, etc).

Here are some of the Unity basics that will be covered in the course

  • Rigidbodies and 2D kinematic game physics

  • Adding, using, and manipulating components on game objects

  • Workflows in Unity and learning how to work more efficiently

  • Manipulating audio sources for sound playback during events and animation

  • Adding lighting to 2D sprite objects in the game engine.

  • Using the Unity Tilemapping Tools to Create Game Maps with easy collision setup

  • Step A to Z in Creating Prefabs for your game like a Giant Animated Fireball

Here are some of the coding topics covered in the course

  • Collision checking for walls and event triggers

  • UI Menus - How to create and navigate between menu using the UI components available inside of unity

  • Saving and Loading Game Data to Permanent or Temporary Files on Any Platform

  • Odin Inspector - a Premium addon that makes it easy to design inspectors for your scripts so designers can make changes to your game and also opens up serialization for important C# objects like Dictionaries.

  • Managing character inventories including items and money

  • Remembering the state of objects in the game when the player leaves and reenters a scene

  • How to Use Scriptable Objects - Storing important game data like settings in an asset file that you can easily edit with the Unity inspector

  • Custom unity events and making outside scripts react to them

  • Enemy and Projectile spawning scripts

  • Unit Testing and Scene Testing with the Unity Test Runner

  • Dependency Injection with Zenject

Music Used: Beauty Flow by Kevin Macleod (CC-BY 4.0 License)

Who this course is for:
  • People who want to build their own games in a robust and extendable game engine
  • Anyone who may know a little code, but wants to learn how to C# libraries specific to the Unity Engine
  • Lovers of 2D Pixel Art Games
  • C# learners or developers who want to follow good design practices like Dependency Injection and Unit Testing while building their games