I'm developping a 3D app with Unity. The app should start on a splash screen canvas, then should show the loaded scene.
Everything works well on Editor. But when I try on a real device (iphone7), the canvas displays very lately: Between Unity splash screen and my splash screen, I can see during 0.5 second the avatar as a T shape (not animated) and an empty backgound. And then my splash screen.
What I want:
Unity splashscreen > My Splashscreen > the scene fully loaded
What I see:
Unity splashscreen > the scene not completely loaded > my splash screen > the scene fully loaded
How can I tell Unity to render the Canvas earlier?
EDIT
My canvas is just in front of the camera, my 3D objects too.
I reproduced the problem on a new scene, very simplified (Image is a simple opaque background, no sprite is configured): The cube and blank bg still appear quickly before Canvas...
Move Canvas under all the rest, as the hierarchy goes from down to top!
Related
I am using Unity 2019.2 with its Vuforia plugin. My initial scene is just a menu without camera, from which AR scenes are loaded- These use regular Image Targets for 3D stuff as well as UIs in different screen spaces based on needs.
With the current configuration, the AR works normally under all Android devices and on two iPhones, 7 and 11, with the latest software updates. Only on the only iPad I can test on, an iPad Air 2 with the latest software updates, there is a strange bug I can find no answer to:
As soon as I load into a an AR scene from my main menu, instead of showing the camera view, it shows the splash screen again, frozen halfway through the default Dolly animation, or sometimes a black screen or weird pixelated markings (like something was extremely zoomed in). UIs that use "Screen Space - Overlay", or "Screen Space - Camera" with a non-AR camera, work fine, and the Image Targets are recognised just fine. But my 3D stuff that should be laid over the image targets just doesn't appear (it's there and active though, scripts that rely on them work). So I can say with confidence everything in the app works and the Splash Screen is just hiding my AR camera view.
I have tried to turn the Splash Screen off via script in one of the AR scenes, but that simply didn't do anything. Adding an AR or regular camera to the start menu made the whole app crash/not start up properly.
In the ARCamera, I have tried to make the Background transparent (didn't change anything) and adjusted clipping planes (neither). Turning off the Splash Screen in the Player Settings just turned the views black. Changing the Architecture to ARM64 didn't change anything, either. The XCode log doesn't say anything useful, either - the camera is working, Vuforia is working, everything is working just fine, there is just a Splash Screen in front of the iPad's camera that shouldn't be there, by all accounts.
How do i properly use Overlay Canvas so that it is not visible over walls. As seen in the image below the canvas is seen through the wall(the white line in Game view). I am using a free roam camera that you can freely move in the Game. I tried using Screen Space - Camera canvas but when i move my camera in Game the edges are flikering.
What you are seeing in your game view is the "Gizmo", which shows the canvas outline. If you disable gizmos in the game view (top right of the game view, just click the "Gizmos" text", the white line will no longer be visible. This wouldn't show in a build of the game even if you have it enabled in your editor.
As Robin said, what you're seeing is just the canvas gizmo in the scene view. It's so big because it's scaled in world units to the resolution of your game view.
If it's getting in your way you can hide it without disabling it or turning off gizmos by clicking the little eye icon in the left of the hierarchy. The little finger icon will disable selecting it by clicking in the game world, so it doesn't get in the way of trying to select other objects.
If you're using an older version of unity, you may need to just disable the canvas and remember to turn it back on before you build, or disable gizmos.
I am new to Unity and am working on a UI project. I want to add a Camera targeted on a GameObject in the Canvas. There is a Camera with the same hierarchy of the Canvas and when I clicked it the preview is blank but when I play the project everything is shown, including all the buttons texts images.
How does the Camera work with UI and is it possible to add a camera targeted on a GameObject?
For your main Canvas, you do not need a Camera. Please see the Unity Manual for information regarding the Canvas. Take note of the Render Mode option on the Canvas Component. If this is set to Screen Space - Overlay then you will not need a camera to view UI Items or GameObjects that are placed as children to this GameObject. It will also inherently not appear in your Camera Preview if it is located under a Canvas of this type.
If you would like to have other GameObjects show up in the Camera Preview, add them to your scene and ensure that they are not under the Canvas GameObject. Then ensure that they are in range of your Camera.
Hope this helps!
When I start an app that the first scene contains too much data, after 3 seconds the Unity splash is like "frozen"... By this way, if I move my head to see any part of the VR world, all is black.
I can only see a rectangle area with the unity logo from the splash, but the remaining space is black.
I suppose that it occurs because all data of the scene are being loading, but, is there anyway to avoid this problem?
I'm using a Gear VR and a Samsung Galaxy S7 Edge.
Check this image to see that the user see if move their head after the splash is "frozen":
Thanks in advance.
After adding a GameObject -> UI -> button to my Unity canvas, when in game mode the canvas rectangle is showing up when I don't want to see it. It should only be visible in scene mode. How do I ensure that it is not visible in game mode?
Check if Gizmos is On. Turn it Off and outlining rectangle would not be visible in GameMode. Or it can be an Image component attached to canvas if you are talking about filled rectangle.
it turned out that when i built the game on android the canvas rect is not invisible (it is only visible in unity editor).