Mobile devices have limited battery, weaker CPUs, and less memory. Optimized games run at 60 FPS, use less battery, and don't overheat phones.
- Prevents lag and stuttering
- Saves battery life
- Reduces phone heating
Optimization 1: Reduce Draw Calls
Each unique material creates a draw call. Too many draw calls slow down the GPU.
- Problem: 100 trees with 100 different materials = 100 draw calls.
- Solution: Share materials between objects - Avoid 10 materials for 10 trees; use 1 material for all trees
- Use Texture Atlases: Combine multiple images into one texture.
Optimization 2: Lower Texture Sizes
High resolution textures use too much memory on mobile. Max Size recommendations:
- High-end phone: 2048×2048.
- Mid-range phone: 1024×1024.
- Low-end phone: 512×512.
How to change: Select texture -> Inspector -> Max Size -> Choose a lower value.
Optimization 3: Use Compressed Textures
Compression reduces texture size without losing much quality.
- ASTC: Best for Android (high quality), very small size.
- ETC2: Best for older Android devices, small size.
- RGBA Compressed: Best for simple images, small size.
Optimization 4: Limit Polygons (3D Models)
High-poly models kill mobile performance.
- Main character: 5,000–10,000 tris.
- Enemy: 2,000–5,000 tris.
- Props (trees, rocks): 500–1,000 tris.
- Background: under 10,000 tris total.
Optimization 5: Batch UI Elements
UI can cause performance issues on mobile. Tips for mobile UI:
- Disable "Raycast Target" on non-interactive UI
- Separate UI that updates often (score) into its own Canvas
- Use static Canvas for menus
- Hide UI with Canvas Group (not SetActive)
Testing Performance on Mobile
Unity Profiler: Attach to device while game runs.
- Build with "Development Build" and "Autoconnect Profiler".
- Install on phone.
- Open Profiler (Window - Analysis - Profiler).
- See exactly what is slow.