- Home /
Animated Loading Screen Unity Indie
Hey there,
I'm looking into making a loading screen in Unity, and my plan was to run a simple animation (just a single texture, with its offset changing each frame) while the scene is loading, in order to show the player that the game has not crashed.
I was completely astounded to discover that this appears to not be possible without Pro. I can understand the Indie version restricting useful, but on the whole not vital, functions, such as RenderTextures and shadows (however awkward that is). Such basic functionality, though, baffles me. It's extremely important to be able to signal to the user that the game is working as intended, especially if, in this case, the loading takes a long time.
I tried a few things to get around this (such as manually spawning my own thread and calling the standard Application.LoadLevel within it), but to no avail. Is there no way I can get around this? Is there some other way I can load the scene, without using Application.LoadLevel, perhaps? My loading can take quite a while, so I really do need this capability to show that the game hasn't crashed. Is there really no way of achieving it?
I'm not sure if this will work as I've never tried it but I think you could have a scene with your animation loading screen in it and then use LoadLevelAdditiveAsync to load your level in the background while it's hidden by your loading animation.
http://docs.unity3d.com/Documentation/ScriptReference/Application.LoadLevelAdditiveAsync.html
I'd be interested to know if it works :)
Yeah, that would work. That's kind of the point of this question. LoadLevelAsync and LoadLevelAdditiveAsync are only supported by Unity Pro. I'm looking for a way to do this without using either of those methods.
You should initially load a small menu screen prior to loading the brunt of your game world. This allows the application to launch quickly. From there you can load another small loading level that displays a loading indicator using the standard .LoadLevel() and use the suggestion above on a script to call any of the Async loading methods while still displaying the loading icon.
There's no built-in method offered by Unity other than those under Application, I'd just suggest using a static loading screen in that case.
Right. If there are no built-in methods, is there a way I can bypass the loading pipeline, or separate the loading of the scene into a series of individual steps, such that I can load it a bit at a time, and render the screen in between?
I don't want to have to use a static loader, because, as I mentioned before, they cause problems in signalling to the user that the game is actually loading and hasn't just crashed.
The method I'm looking at at the moment is to instantiate all the assets in the scene separately. From there, I can just call LoadLevel, and it should be quick. $$anonymous$$y only problem is finding, dynamically, which assets were used in which scene. Does anyone know how I might do that?
Your answer
Follow this Question
Related Questions
Animations in Loading Screen 1 Answer
scene loader issue 0 Answers
Loading animation won't play 0 Answers