Object Pooling reutiliza objetos en vez de crear y destruir constantemente.

Problema

Instantiate(bala);
Destroy(bala);

repetido cientos de veces puede generar trabajo innecesario.

Idea

Pool
├── Bala 1
├── Bala 2
├── Bala 3
└── Bala 4

Reutilizar

objeto.SetActive(true);

Al terminar:

objeto.SetActive(false);

Usos

UnityEngine.Pool

Unity también dispone de APIs de pooling en:

using UnityEngine.Pool;