I have a Unity game, and when it runs on an Amazon Kindle device, after several activity changes, the screen becomes unresponsive.
It has a low occurrence rate, but when I am able to reproduce it, it's either by initiating an In-App-Billing pop-up screen (the standard Amazon one), opening up the Facebook/Twitter post pop-ups, or switching across different applications. If I spam the button that prompts the Amazon IAP dialog, I can repro it the easiest.
I'm pretty sure that the device is in a state where it is confused what activity is on top and is taking input. Would that be correct?
The game isn't crashed at all, I can still see things animating, and the OS back button properly navigates backwards through the screens all the way to the exit prompt.
When I get into this state, my touch count is zero. I have a log message in the camera's update that gets called every 3 seconds, and that continues to log, but the log message I placed inside the for loop of the touch count stops getting called once I am in this state, no matter how much a touch the screen, it never enters this: for (int i = 0; i < Input.touchCount; i++) Debug.Log("ProcessTouches");
So somehow the touches are never getting registered to Unity's Input
UPDATE:
As an interesting experiment, I decided to broaden my test range on this issue. Instead of limiting it to my Amazon build on the Kindle Fire, I decided to put a regular Google Play build onto the Kindle. Issue occurred. Then I tried the game on my S3, and while it took a lot more task switching to repro it, it finally occurred. Then, for kicks and giggles, I tried another Unity game I had purchased months ago (Bladeslinger) on my ASUS Infinity tablet. Sure enough, initiating and canceling the IAP eventually put their game in a state that no longer accepted input, yet still responded to the system back button.
Long story, I guess this is just a Unity bug, and maybe a pre-4 bug, since this game was most likely made with Unity 3 given that it's been out for almost a year.
↧