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
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
- [Dragon Crashers] 4 Shader error messages on import
- [Dragon Crashers] Readme text is white on light grey
- Cursor stays in front of the first character when entering text in the TextMeshPro field
- Searching in Hierarchy causes unwanted component calls
- Camera sub dropdown "Open Reference" buttons do not work
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);
...
}