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
- ACES Tonemapping causes banding artifacts and negative values in ColorGradingLUT when HDR is enabled and "High Dynamic Range" Grading mode is selected while Android Platform is used
- Android Player freezes when an Audio Source is playing and an incoming call is picked up and then hung up and the Audio Source is started again
- Green success icon is poorly visible in the light Unity theme
- Incorrect input into the Input Field when using Microsoft IME Japanese
- Multiplayer role "ClientAndServer" is displayed without the spaces in the "Play Mode Scenarios" window
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);
...
}