I have worked on mobile games about 2 years. These are my performance experiences on unity 5 and mobile devices:
My main target is Lenovo A3300 with mali400 GPU
You can change unity height map resolution to reduce terrain triangles(note: after changing height map resolution, your created height map will be lose)
Unity default sky box uses IBL lighting shader. you need avoid unity default skybox for mobile devices. Its drop around 20 fps on mobile devices. Replace default sky box with new one and change Ambient Source to Color.
3.One of the easier ways to achieve high frame rates is that reduce screen resolution: My best choice for low end devices is 800x450(16:9) or 900x506 (16:9)
4.Fastest shader for mobiles is Mobile->Vertex Lit shader that reduce draw calls and calculate lighting on Vertex’s instead of Pixels.
For particles you can easily reduce max particle counts and set particle size to larger value for same results
8.Child all static game objects to an empty game object (called “Scene”)and set its as static for static batching and reduce draw calls Unity Manual Link
9.Best performance and good quality settings for low end android devices
Good tips, so what is wrong with occlusion culling? I read that occlusion culling is good for mobile? According to our profiler, “culling” is taking like, 30% of our CPU in the profiler! Any idea? Check our post here https://forum.unity3d.com/threads/android-culling-performance.437749/
No. OC is not good for mobile at all. It makes a lot of lags on Low-End mobiles.
I suggested that you can use Per-Layer Camera Clipping Instead of OC. I’ve tested it already. It is the best solution for culling on mobiles. You don’t need to cull terrain along with other game objects. Its also reduce draw calls.
My test on the big scene:
Some devices like Xperia Z1 has good GPU chip. but when you play some games like asphalt 8, these games run slowly. Its because Z1 native resolution is 1080p and 1080p is very heavy even for PS4. You can set your default resolution to 720p and run your game with solid 60 fps even with a lots of effects and heavy shaders.
Not much difference between 1080 and 720 on 6 inch screen.
These is 16:9 resolutions list:
1980x1920
1600x900
1280x720
900x506
800x450
700x394
640x360
Reducing resolution is the best solution to run games smoothly on every devices. you can run a game with 3 images effects with 640x360 res on low end devices.
I’m added resolution setting to my games settings menu for support to every devices. Players can turn on image effects and reduce resolution or vice versa
You need add this codes to your main camera on the scene. I set main menu resolution to 1280x720 and game scene resolution according to selected on settings menu.
You can see Xbox one is 50% less powerful than ps4, but with lower resolution it can run games smoother than ps4!!!
hi aliyeredon2
thanks for the tip they re really usefull, especially for low end mobile, i tryed Per-Layer Camera Clipping it kind of work
but for some reason all the mesh that has collision mesh component lose their collision . any idea how to fix that?
cheers
I’ve found the old M2H Culling free script package works well for mobile platforms. It also works in Unity 5 as well as the 4.xx series. I’ve used it on several mobile client projects and it’s always helped.
You can simply bake normal map and occlusion map into diffuse texture with photo shop. Its similar to shader code in runtime(multiply occlusion texture to diffuse texture) Watch tutorial Download free rocks:Link
No problem let me know if it works, I went from a pretty unplayable game on low end devices (I am using Xperia E3 for testing) to smooth game play. Was really happy!