- Home /
how to detect Splash Screen has ended (iOS)
my ios game works perfectly from a unity 4 build but in the new unity 5 build the splash screen stays on even after my first scene has started or another way of looking at it is that the scene starts before splash screen has ended. this is most noticeable when the first scene starts with an animation and every time splash screen ends I can see the animation is half way through. I even tried putting an empty scene before my first scene and that empty scene (with a script that changes scenes on update) finishes and the next scene starts before splash screen ends now I would say this is a unity 5 bug (5.0.1is the version I used) unless I have fiddled with some secret setting that I am not aware of, but I can think of a number of work arounds but the most accurate one would require a way to check if splash screen is still active or detecting the end of it. Is there a way through unity or at least xcode to figure out splash screen states (detect has ended) ?
You can 'detect' the end of the splash screen by observing the loading of scene 1!
@meat5000 that is how it should work (ideally), but apparently unity 5 iOS exporter has a different way of doing that. as far as I can tell they allow indies (free license holders) to have their custom splash screen (which is good) this is the splash screen that xcode recognises as the app's splash screen, but unity's mandatory splash screen starts right after the custom splash screen that I suspect due to an error unity's splash screen starts at the same time first scene starts to load, so by the time the first scene has loaded the splash screen could still be on.
Indeed I'm seeing this cropping up all over the place now!
$$anonymous$$y findings are not consistent with fafase's. In 5.2.2, I have tried starting my animations from Start(), but they still get stomped by the Unity splash.
Im having exactly the same problem. Any solutions out therE?
Answer by Desoxi · Nov 17, 2016 at 10:37 AM
If it is a bug you should list it on the issue tracker. I never experienced this issue but like samra2494 told you already: http://answers.unity3d.com/answers/1163002/view.html you could use that method inside a couroutine start in your scene to yield and wait before continueing to load everything. Or you could place an empty scene, like you already mentioned, and put the script with the courinte inside that scene.
IEnumerator Start()
{
while (Application.isShowingSplashScreen)
{
yield return null;
}
SceneManager.LoadScene("YouScene");
}
This will wait until the splash is finished and load the nexxt scene after that.