Unity Mobile Optimization: How to Hit 60 FPS on Low-End Devices
At 60 FPS you get 16.67 milliseconds per frame. Here is where they go, and how to win them back on low-end phones.
- At 60 FPS, everything must fit in 16.67 ms per frame, and less once phones heat up.
- Profile on the cheapest device you support, never in the editor.
- Batching, pooling and baked lighting are the biggest easy wins.
- Budget each system, then hold the line.
Smoothness is a feature. Players can't name it, but they feel it the moment a game stutters. On mobile, where devices range from flagship to five-year-old budget phones, hitting a steady frame rate is one of the hardest and most valuable things a team can do.
Know your budget
Frame budget is simple maths: 1000 milliseconds divided by your target frame rate. Scripts, physics, animation, rendering and UI all share it. Try the calculator below with a typical mid-range breakdown, then switch on the optimizations.
Leave room for heat
Phones throttle when they get hot. A game that hits 60 FPS for the first five minutes can drop well below it after twenty. Aim to use around 65–70% of your budget at peak so the game stays smooth on a warm device and on a train in summer.
The biggest wins
Rendering
- Reduce draw calls with the SRP Batcher, static batching and GPU instancing.
- Use texture atlases and compressed formats like ASTC.
- Bake lighting wherever you can; real-time lights are expensive on mobile.
- Watch overdraw from stacked transparent particles and UI.
Scripts and memory
- Pool frequently spawned objects instead of instantiating and destroying them.
- Avoid per-frame allocations that trigger garbage collection spikes.
- Cache component lookups instead of calling them every frame.
- Move heavy work off the main thread with the Job System where possible.
Profile on the worst phone you support. The editor will lie to you every time.