We just tried upgrading to Unity 5.6.0f3 for a bigger project containing a loading scene with one UI canvas (set to ‘Overlay’) and a main scene with three difference UI root-canvases (all in different render modes). Everything seemed to work fine in the editor and looked as expected, however when building for iOS (for which we are developing), the whole UI on the ‘Screen Space - Overlay’-canvas in the main-scene is gone (the loading-scene looks fine though).
The weird thing is, a few UI things still work (such as UI elements triggered via a button press - the button itself is still there, just hidden) and other elements start re-appearing after blindly navigating a bit through the app. Most elements stay invisible though. We couldn’t find any pattern which elements re-appear and which don’t.
In Xcode, we observe many many messages like these since then:
(basically there is one of these messages for every missing UI element, it’s not just a small set of elements)
These messages did not appear with the exact same scene under Unity 5.5.
Can anybody help us here? Is this a Unity Bug or are we missing something on our end?
It sounds like an issue we have with nested canvases. If it is then it is fixed in 5.6.0p3 which is out this week. If you still have the problem after that patch then please file a bug report.
It turned out to be caused by TextMeshPro, more specifically an InputField - the TMP_UGUIs worked fine. We were using an old version of TMP and now after updating to the new version everything is fine again!