How to make Custom Loading Screen UI System
Loading Screen System in Unity
Today we will be going over how to make a Loading Screen System that you can use in your app or game. This will be a basic loading screen system that you can share with your friends and use right away. For more advanced tutorials on working with Dynamic Types, Tasks and Asset bundles, please check out the tutorials in link of this description.
What are loading screens good for?
Loading screens are just a universal way for you to unload and load data in your app/game. This allows you to make the transitions between scenes flawless without any problems. You will see that every game uses this for it whether or not they actually need the loading screen or not. The proper way to use it is to make sure you are only doing it at key moments. That doesn’t necessarily mean that the loading screen should always be a splash screen, it can be a simple progress bar, loading icon or even a simple message at the top of the screen. Every game/app approaches their loading screen differently because of how they want to transitions. I personally love the banjo kazooie type of screens where everything is puzzled together and it is seamless. I don’t like long loading screens and I don’t like them being used incorrectly where I transition to one for no reason.
How to use loading screens
You never want to constantly transition to a full onscreen splash for a loading screen during your game, you will always want to load all the necessary data for the user until he has reached a point that requires a new transition that he himself is aware will be happening. A good example of this is World of Warcraft where you will see a portal and by touching this portal you will be loading all the content for that next area. This is the same type of concept we want to approach will all the loading screens. But that doesn’t mean that every loading screen will be a splash. You can definitely load content in the background for the user for small things and show a small indicator for that or a small progress bar for it. Most games load a package in the background and have a small rotating indicator somewhere on the screen, these are just progress bars but to me they are just a smaller form of a loading screen that can be consolidated to the main concept. In fact, even your phone uses this concept when downloading new content. So let’s get started!
You will need Unity 2017 or 5.6 at the time of this tutorial in order to utilize the latest asset bundle building process.
You will also need to grab any art assets that you can use for the splash itself
Setting Up the Project
You actually do not need to do anything crazy for your setup of your project, I didn’t change any of the project settings for this. You will however need to grab a few art assets to test out for your splash and put them into an art directory to be referenced. You can always just put them in the resources folder of your project and dynamically load them from there as necessary.
What can I use this for
Anything! Any time you want to do a loading screen or have no way to transition cleanly from one location to the next, you can use this as the buffer inbetween those transitions. No need for the jerky loading of scene transitions when you can use this as a filler inbetween. Keep in mind that this will not solve all optimizations that your code already needs, but this will make it so that any additional loading of assets behind the scenes can be done peacfully without causing heaches for the end user.
Now that you have completed this tutorial, you just need to plug it into your game or app! We have a few awesome advanced tutorials and source code on the site listed in the description.
Advanced Features and Source Code
The advanced tutorials will go over the Dynamic types of loading screens we can make out of it, queuing up tasks for the loading screen, as well as Asset bundles that we will load through the loading screen.
The dynamic types will allow us make it so that we can support unlimited different types of loading screens for the user experience. This will allow us to show either a progress bar, a splash screen or even a simple loading icon.
The Tasks for loading screen allow you to queue up a list of tasks that the loading screen can process so that you are able to see the progress reflected as a whole through the loading screen. This means that you will not see the loading screen be completely finished until all the provided tasks are complete for it.
The Asset Bundles for the loading screen allow you to make it so that you can pass your asset bundle loading process through the loading screen. This allows you to pack up all your assets to be loaded through the loading screen to be loaded into data for you to use and unloaded when the process is completed. Each of these can be expanded further to your desire but just to show the process of making such a system for you to use right away.