Performance: Sprite Renderer component
MEDIUM IMPACT
This affects the rendering speed and frame rate by controlling how 2D images (sprites) are drawn on screen.
Material sharedMaterial = new Material(Shader.Find("Sprites/Default")); foreach (var sprite in sprites) { var go = new GameObject(); var sr = go.AddComponent<SpriteRenderer>(); sr.sprite = sprite; sr.sharedMaterial = sharedMaterial; }
foreach (var sprite in sprites) { var go = new GameObject(); var sr = go.AddComponent<SpriteRenderer>(); sr.sprite = sprite; sr.material = new Material(Shader.Find("Sprites/Default")); }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Unique Material per Sprite | N GameObjects with SpriteRenderer | N draw calls | High GPU paint cost | [X] Bad |
| Shared Material for Sprites | N GameObjects with SpriteRenderer | 1 draw call | Low GPU paint cost | [OK] Good |