Search Issue Tracker
Not Reproducible
Votes
3
Found in
5.4.0f3
Issue ID
824186
Regression
Yes
[Gear VR] Application freezes when image with radial 360 method is filled
Reproduction steps:
1. Open the attached reproduction project
2. Build and run the project on Android device that supports Gear VR (Samsung Galaxy S6)
3. Move head/phone to point at the UI element "STARE HERE!" (on the right side)
4. If application doesn't freeze move away from "STARE HERE!" and repeat step 3
5. In about 10 tries the application will freeze
Regression introduced in 5.4
Comments (3)
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
- AssetBundles fail to load when running in Built Players for Mobile Devices
- UI elements with text gets bigger and grey when Player window is moved to another screen with different resolution
- System name accepts multiline text but crops it on confirmation, duplicates input, and shrinks the field when empty
- UI element scale and position are wrong in project build when DRS is changed with HDR and Software Dynamic Resolution enabled
- White lighting artifact when a point light with a small emission range and "Hard Shadows" touches an object while a directional light with "Soft Shadows" and another point light are present
SaraYamit
Nov 21, 2016 03:50
I am having the same problem using Radial fill. Application runs fine on the editor but crashes in the mobile build.
ndelmas
Oct 24, 2016 06:00
Well scratch that. I was tired and mixing up the input held vs input down events. The coroutine starts once.
Ended up solving this simply by increasing the size of the canvas that contains the radial selection. I'm still not sure why this works exactly. Fix found here:
https://issuetracker.unity3d.com/issues/ui-android-slash-ios-changing-image-fillamount-causes-freeze-on-small-world-space-canvas-on-mobile
ndelmas
Oct 23, 2016 09:19
Can't see the reproduction project. But I encountered exactly this bug with the SelectionRadial script from the free Unity VR Samples pack. In case anyone else is looking for a solution to this here is some info.
There is a bug in the script, as long as the mouse input (or touch pad or what have you) is held down it keeps spawning infinite coroutines until the radial is filled or disabled. For some reason this worked in 5.3 but it causes performances issues in 5.4 which really should be expected.
A fix: I used an extra private bool m_StartFill initialized to true.
private IEnumerator FillSelectionRadial(){
m_StartFill = false;
...
}
private void HandleDown(){
if (m_SelectionRadialActive && m_StartFill){ //this prevents more coroutines from spawning
...
}
}
private void HandleUp(){
m_StartFIll = true;
...
}
And for good measure you probably want to stop the fill coroutine when the radial is hidden.
public void Hide(){
if(m_SelectionFillRoutine != null){
StopCoroutine(m_SelectionFillRoutine);
...
}