A “Loading Scene” is just a simplified scene that you have visible while you “Asynchronously” load the next scene in the background. This allows the scene with your game to fully render what is needed before allowing the player to see it.

The first step to creating your loading scene is to “Create A New Scene”.

This scene should consist of something simple such as a background image and a loading bar. So let’s delve into it!

Once you’ve added an image to your scene, Unity will automatically create a ”Canvas” for it to sit on.


An “Audio Manager” is a game object in your hierarchy that will control your in-game audio. It will manage audio triggers, play audio when needed, and keep everything organized and in line with “Best Practices”.

To start, you’ll want to create a new game object in your hierarchy and name it “Audio Manager”. You are welcome to name this whatever you like but I would recommend this name, as simple and straightforward naming conventions are oftentimes the better option. …


The “Static” keyword is added to a variable or class in order to make it accessible from within any other class. By making something “Private” and “Static” you are adding it to a memory bank for it to be seen by other classes, but preventing other classes from being able to directly reassign it to equal something else. Though a “Public/Static” variable can call on a “Private/Static” variable that is declared within the same class, even from outside of the original class.

A “Singleton” is a “Programming Design Pattern” that allows you to access a specific class directly without using…


After you make your cinematic with Unity, Cinemachine, and the Timeline editor, you are probably wondering about how you want to trigger these cutscenes.

[Side Note]

At the time of writing this, Unity doesn’t allow you to use Cinemachine’s “Activation Track” to deactivate the game object that contains the “Playable Director” component. However, you CAN deactivate the parent object of the “Playable Director”!

If you make sure that the “Play On Awake” box is ticked within your cutscenes “Playable Director” then your cutscene will play as soon as it is set as active.

This means all you have to do is make…


Games like Bioshock, Zelda: BOTW, Deus Ex: Mankind Divided, and many others have all used security cameras in some form or another. Some game object be it a robot, turret, or plain old security camera is used to detect the player and push for stealthy gameplay. Usually, the player is encouraged to avoid, destroy, or even sneak up and take control of them in some form or another. If you’ve played any of these games, then you probably know for yourself the different variations of use that they implemented these mechanics for.


This is a common mechanic that you see in a number of Stealth games. Throwing rocks, creating noises, or flicking coins to distract your enemies in order to sneak around or get the jump on them. The concept is quite simple, but how would you go about implementing this into your own project?

Well, let me start by explaining two different ways that you could go about this. First off, let's discuss the object throw.

You could have an object with gravity be instantiated in front of the player position and apply force to launch it outwards assuming you're developing…


I’ve gone into this a bit in a previous article, but today let’s address the code.

When you are creating AI for your game, you may want them to simulate sight so as to give the feeling that they can see what is going on around them. This is of course all smoke and mirrors as are most things in the world of game development, but if done correctly, it can make your game feel ALIVE!

The concept of creating a cone of vision is about as simple as the code needed to implement it. …


Sometimes, when creating the movement for an AI, you may want to determine a set path for them to navigate. To do this, you will likely need to create a “Waypoint System” so that your AI knows its target destinations.

You’ll need to create a “List”, which will hold the transforms of all your AI’s waypoints.

Next, create a reference to your “Nav Mesh Agent” and call it in void Start.

Then you’ll need to create an “Integer Variable” to hold your AI’s current target from the list.

And you’ll also need a “Boolean Variable” to reverse your AI’s progression…


In order to create a list, you must utilize the “Namespace” in the example below.

This namespace will open up the C# library to allow for the use of lists in your code.

A list is very similar to an array however a list is dynamic and allows for items to be added to it or removed from it during runtime. An array is a fixed-length/size which determines the max number of elements that it is capable of holding.


Point and click controls are a classic staple that we see in a lot of games. Diablo was the forerunner of this in a lot of ways by creating an combat oriented RPG that revolved around clicking on an enemy and then watching your character run up to them and hit them.

Today we will be creating a form of character controller that utilizes mouse clicks to move the player. Creating this is actually quite simple, but requires a few steps first.

If you haven’t seen my articles “How To Use Raycasting To Detect Collisions In Unity With C#” as…

Adam Reed

Hi, my name is Adam Reed and I am a software engineer specializing in Unity and C# development. Feel free to scroll through and check out some of my work!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store