How to further optimize this project?


So I’m making a project for Android, I’ve tried every thing I know and still the game doesn’t get over 20FPS on my Samsung Galaxy Tab 3 (which can run more demanding games decently).

Here’s what I’ve tried:

Gone to Edit> Project Settings > Quality > Fastest for Android. However I do need full texture quality.

Set my only light (directional light) to BAKED. All the lighting is baked.

Set rendering path to Forward.

Optimized my scripts to use as few Update() as possible. However the game still is under 25FPS even with all scripts disabled. My scripts on average use less than 7% of the processing power (data from the profiler).

Refraining from using mesh colliders. The ONLY time I have mesh colliders is on some static objects in my map.

Camera.Render is taking 80% of my resources. 48% Drawing, 25% goes to Culling. Inside drawing, 37% goes to Render.OpaqueGeometry. In Culling, 15% goes to Terrain.Heightmap.RenderStep3

What can I do to further optimize the camera’s drawing? I’m glad my scripts aren’t the issue as that’s (for me) the hardest part, but now I’m having massive issues with a relatively simple game.

Thank you so much for your advice!!

Two things you have to consider, for optimisation GPU and CPU ,

  1. Scripting point of view don’t use foreach loops , try to avoid foreach loop and replace them with for loop.
    2)Don’t use OnDrawGizmos methods which calls every frame.
    3)You object pooling if is there any where you are using instantiation and destruction.

4)GPU rendering point of view, try to use the same Materials in order to Save Draw calls , batching. For stationary objects use Static Batching, and for moving Dynamic batching.

And Project Quality setting plays an important roll . so use the setting considering the requirement of the scene.

If Camera.Render is taking 80% which means major issue is with rendering. You should:

  • Reduce the “Far” parameter of Camera.