Game is unreasonably slow on WP 10 (lumia 520)

Unity 5.3.1, trivial scene with about 40 objects max (1 capsule, about 10 spheres, the rest is scaled cubes), and 3 materials. It uses physics for the player, and that’s about it. In editor it runs at silkysmooth 120fps, on phone it’s 14-22, with short freezes happening when first of the spheres comes into view, and each time when player enters a trigger around it, which starts coroutine that causes Time.timeScale to change to about 0.01 and fixedDeltaTime change accordingly as well, and after a second it returns timescales to normal. It uses WaitForSeconds, of course. Precisely at that moment when player enters the trigger, the game freezes and as if “skips” the whole slowdown period, then continues at its sh…crappy 14-20 framerate. Whole thing uses just the Standard Shader (which might be part of the problem, but I thought it’s got mobile-optimised fallback version, i thought that’s the whole point of it being a standard shader)…

I tried publishing it with IL2cpp scripting backend explicitly set, but so far Visual Studio hasn’t managed to compile and deploy that, it was taking ages (like 20 minutes), so I killed it from task manager. I’m trying that again now, but… Even with .net scripting backend, i’m sure it shouldn’t be this slow, but I have completely no idea where the problem might be.

It could be that you’re running the game in Debug mode (from visual studio). Change the build mode to “Release” and the FPS should increase.

Reason : I was in the same situation a month ago, where i was getting 30FPS for my game in debug mode. Switching to Release mode did the trick and i started getting stable 55-60 FPS on Lumia device (1GB Ram).

Hi Have you found the solution for this why it was running too slow?

There are plenty of tools you can use to profile on device, you’d need to use one of those to find out what is taking up the most processing power in each frame.

One thing I’ll add- the Lumia 520 is a VERY low-end device. 40, fully 3D, non-static physics objects is probably too much for it to handle.