Unity sudden FPS drop

I am developing a simple 3D mobile game using Unity. I am targeting 30 FPS without vsync. My game runs good on all iOS devices without heating and throttling but there are weird FPS drops. Suddenly FPS drops to 20 and after several seconds it is 30 again. This strange thing occurs every 10-20 seconds and it’s absolutely weird because my profiler shows smooth rendering stats. Can anyone help me?

Answer

After a short research I found a solution! This FPS drop occurs when GPU renders on full screen resolution. So I decreased my phone’s screen resolution.

void Awake() {
    var resolution = Screen.currentResolution;
    var height = (int)(resolution.height * 0.65f);
    var width = (int)(resolution.width * 0.65f); 
    Screen.SetResolution(height, width, true);
}

Now my game works perfect on all iOS and Android devices without throttling and heating even after long sessions.

Leave a Reply

Your email address will not be published. Required fields are marked *