Search Issue Tracker
By Design
Votes
0
Found in
2019.2
2019.2.0f1
Issue ID
1183244
Regression
No
[Android] Using "Render Over Native UI" with transparent images, makes the Cameras Background Transparent to Native UI
Reproduction steps:
1. Open "renderOverNative_Android.png" project
2. Build & Run for Android
3. Notice how the button is rendered
Expected Result: The transparent button does not make the Camera background transparent as well
Actual Result: The transparent button does make the Camera background transparent over the image
Reproduced with: 2019.2.6f1
Did not reproduce on: 2020.1.0a4, 2019.3.0b3, 2019.3.0a1
Could not reproduce on (No "Render Over Native UI" setting): 2018.4.9f1, 2017.4.32f1
Reproduces with: OpenGLES2, OpenGLES3, Vulkan
Repro Devices:
VLNQA00272, Samsung Galaxy S10+ (SM-G975U), Android 9, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640
VLNQA00224, Samsung Galaxy A5(2017) (SM-A520F), Android 8.0.0, CPU: Exynos 7 Octa 7880, GPU: Mali-T830
VLNQA00013, Samsung Galaxy S6 edge+ (SM-G928F), Android 7.0, CPU: Exynos 7 Octa 7420, GPU: Mali-T760
VLNQA00262, Sony Xperia XZ Premium (G8141), Android 9, CPU: Snapdragon 835 MSM8998, GPU: Adreno (TM) 540
VLNQA00153, Google Pixel XL (Pixel XL), Android 10, CPU: Snapdragon 821 MSM8996 Pro, GPU: Adreno (TM) 530
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- [Android]Crash on PersistentManager::GlobalToLocalSerializedFileIndex(SerializedObjectIdentifier const&) when building the Android Player
- [Android] The Video Player stops playing at different points when Skip On Drop is enabled
- Rigidbody2D.Slide API does not have the needed configuration when creating a 2D Top-Down character controller
- Opening reference for "Playables"component redirects to a missing page
- Sprite Renderer image is changed when switching Mask Interaction and changing Sprite to a shared Sprite
Resolution Note (2020.1.X):
It is expected that on Android "Render Over Native UI"blends the Unity surface with the background. "Render Over Native UI" selects a transparent theme and sets the surface to translucent. If you don't want this you can use a custom AndroidManifest that uses a non-transparent theme.
It is also expected that the default UI shader (and most other Unity shaders) apply the blend function to the alpha channel.
If you don't want that you can use a custom shader with separate blend function for alpha (https://docs.unity3d.com/Manual/SL-Blend.html).
E.g. "Blend SrcAlpha OneMinusSrcAlpha, Zero One" instead of "Blend SrcAlpha OneMinusSrcAlpha"