Unity performance tips and checklist for beginner

  • Use Light backing.
  • For big scenes use manual light backing. Uncheck checkbox Auto.
  • Mark all static objects (that will never move on the scene) as Static in the Inspector window.
  • Turn On Dynamic and Static batching in the Build Settings…->Player Settings / Other settings.
  • In Light component use Culling mask property to exclude layers where we do not need lightning to hit.
  • Change the Resolution of the Shadow in Light component or Edit->Project Settings-> Quality for each platform.
  • Optimize using shadows. In Mesh Renderer component turn off Casting and Receiving shadows for all game objects which do not require shadows.
  • Use fake shadows whenever possible, simply draw them on the texture.
  • Use blob shadows as Projectors for moving objects.
  • Use Light Probes for dynamic objects.
  • Make sure we are generating additional set of UV coordinates for all static objects. Select model and in Import Settings/Model activate checkbox Generate Lightmap UVs. Click Apply.
  • For Reflection Probes choose wisely where to use backed and real-time reflection. For static objects use backed. Balance the quality of the reflection against performance gains or loses. Change resolution (for example to 128)
  • Remove unnecessary Rigid Bodies.
  • Do not store variables or do expensive operations in Update() method.
  • Comment all Debug.Log.
  • Use Object Pooling instead of Instantiate and Destroy.