This is the thread to put in all information, announcements and questions into one place. This first post will be updated as we go along. Feel free to follow or reach out to me on twitter at @mnerurkar.
What is Loading Screen Pro?
You need a loading screen between scenes of your game? That’s what this asset does. It’s incredibly quick to include in your project and the visuals of your loading screen are yours to design as you wish using the Unity UI system! And if you don’t want to do that, you can use one of the included ones!
Show preview info (text and image!) about the scene being loaded
Can display random game tips
Easily extendable
INTERACTIVE DEMO Play around with the different loading screens and see how it works in practice
The loading screen is currently still available for a cheap launch price. As I add more features, functionality and prefabs to it or the progress bar, the price will increase accordingly. So grab it now!
Here’s two very simple playmaker actions! Just copy & paste them into their respective files with the names given above the code blocks. That should do it.
Note that I did not have a chance to test them yet so if there’s anything wrong with them, please let me know so I can fix it.
LoadLevelScreenPro.cs
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory(ActionCategory.Level)]
[Tooltip("Loads a Level by Name. NOTE: Before you can load a level, you have to add it to the list of levels defined in File->Build Settings...")]
public class LoadLevelScreenPro : FsmStateAction
{
[RequiredField]
[Tooltip("The name of the level to load. NOTE: Must be in the list of levels defined in File->Build Settings... ")]
public FsmString levelName;
public override void Reset()
{
levelName = "";
}
public override void OnEnter()
{
if (!Application.CanStreamedLevelBeLoaded(levelName.Value))
{
Finish();
return;
}
LoadingScreenPro.LoadScene(levelName.Value);
Finish();
}
}
}
LoadLevelScreenProNum.cs
namespace HutongGames.PlayMaker.Actions
{
[ActionCategory(ActionCategory.Level)]
[Tooltip("Loads a Level by Index number. Before you can load a level, you have to add it to the list of levels defined in File->Build Settings...")]
public class LoadLevelScreenProNum : FsmStateAction
{
[RequiredField]
[Tooltip("The level index in File->Build Settings")]
public FsmInt levelIndex;
public override void Reset()
{
levelIndex = null;
}
public override void OnEnter()
{
if (!Application.CanStreamedLevelBeLoaded(levelIndex.Value))
{
Finish();
return;
}
LoadingScreenPro.LoadScene(levelIndex.Value);
Finish();
}
}
}
You need to edit the settings in the config asset, not in the script. I assume that was the issue? Also thanks for the kind words. If you’ve got time to write a review that’d be really appreciated
Dear Democide,
I have just purchased your product “LoadingScreen Pro”. It is very nice. Great job !.
However, i have a quick question. I would like to make a loading function that does not divert to the loading screen.
I would like to stay on the same scene but show a loading progress bar down and then immidiatly progress to the next scene. Can you help me with this.
Hey. Thanks for the purchase. Unfortunately that’s not something the loading screen currently supports and it’s not super simple to describe to you. I’ll see if that’s something I can add in the future but I can make no promises…
Hmm, I’ve followed the instructions and implemented this however it just loads up the loadingscreenpro scene but never proceeds to my 2nd scene. No errors or anything… Is the newest version still working ok?
Hi purchased your asset and really like it so far. My question is if its possible to have different loading screens in your project. I want for example like to have one type of loading screen when I load between menus, and a different one when loading between levels and so on?
I figured I might just change “loadingSceneName” var from another script, would that be the preferred way?
Ive just purchased your loader, your demo works OK in 5.6.2F1, but I was thinking that I could just put PS-LoadingScene_1, into my project and that would autorun my main scene called ShopVR, when I try to run the scene I get a loading screen displayed that does not seem to load the scene defined in the build setting and I get an error that LoadScreenPro directly tried to load a scene without an name or id.
I have both scenes in the build manger and the scene name in the Loadingsceneconfig I dont have a scene loader at startup as I only have one sceen but it takes a while to load, hense needing a progress bar.
Will you plugin do what I need or do I need towrite my own a async routine.
Yeah, that is doable. It will require some changes to the existing system. For one you’d have to extend the definitions for each scene to hold more than one image, and then you’d need to change the part of the loading screen that accesses that to either control a slideshow or show them all at the same time.
That is in fact how I’m doing it in the example scene. If you take a look at that you can see that the different buttons first set the loadingSceneName and then start the loading process. That’s probably the quickest way to do it. An alternative would be to have a version of the LoadScene method that can take a custom loadingScene and that then ignores the var if that value is not null. I hope that helps!
You can not load the Loading Scene and then have it auto-load another scene. At least not without changing anything. The easiest way would be to add a third scene, that’s the first scene in the Build Settings. This scene is practically empty. All it has is a script that, on Start loads the LoadingScene with the appropriate parameters. That would then very quickly load the Loading Screen and display a bar as you want.
Note that this requires you to set up a third scene. If that is not a feasible option you can modify the LoadingScene script so that it loads a scene by default when it’s opened. Just check the line where the “tried to load scene without name or id” appears and around there you should be able to instead set a default name or id. That would be another option but requires you to make changes to the script, which may be troublesome if you want to update.
I tried your webdemo, and at each fade-in there is a lag where the background image is half visible, and Unity does some work, then the background image finally (after like 0.5 s) becomes 100% opaque.
So there’s a lag.
This doesn’t look professional. Are you going to change that?
I also think that what one requested - autoloading another scene after X seconds or a button press - is required for many people.
In any case, thanks for the webplayer, this way people can rule out problems before purchasing, that’s good.
Some questions:
Your asset can fade a canvas and its contents, is that correct?
Can you include a sample scene that includes particles on the camera?
I have a persistant screen that plays music and which holds my inventory with DontDestroyOnLoad. How would that work when I use your asset?
Should Ioad my persistent screen and from there, your LevelLoader?
Does your example actually do something when the progressbar appears? Like doing some arbitrary work that would show us where / how we should pre-load the scene?
I think this would be important just for debugging so that you can see yourself where problems might occur.
I assume you’re talking about the fade from black on the loading screen? That’s because the loading starts ASAP and doesn’t wait for the fade to end. That’s easily changeable though, if you want to lengthen the load time by the fade time.
And in regards to your question:
In fact no, the asset does no manual fading on the game scenes. There is support for a fade in the loading scene (which is done via a simple black overlay). In the web demo I’ve added manual fading on the “game scene”
I’m not sure what you mean by “particles on the camera”. Are you referring to particles in the game scene? Or the loading scene?
Since it’s set to DontDestroyOnLoad it would simply remain and keep playing in the background. Depending on how your game is set up it might make sense to load that first and then the level loader.
Again, not quite sure about the question. Can you rephrase?