Writing an Object Pool class
Imagine you’re building a turret defense game where players fire projectiles from a tower at oncoming enemies, like a 3D version of Asteroids (super fun). The current system creates a new Bullet
Prefab every time the player pushes the Spacebar, but the bullets stay alive in the scene (not super fun), as shown in Figure 7.5. You need a system for improving performance when instantiating projectile objects and limiting the number of projectiles that can be created.
If your players exceed the number of projectiles they’re allowed to shoot, they’ll need to wait until a new projectile becomes available instead of creating new projectiles indefinitely.
Figure 7.5: In-game scene showing the player turret creating bullets every time the player fires
Even if you added a timed delay for each bullet to destroy itself, the core problem and cost of instantiating and destroying bullets each time the player fires still exists...