Object Pool and Spawning
This chapter is based on the assets and project completed in the previous chapter. See Figure 10.1. Here, we'll add gameplay elements to our project and make it come alive:
Let's start by creating a pooling system. Our game will feature enemy prefabs (yet to be made). At regular intervals, enemy droids spawn into the level at specific spawn points. Once spawned, each enemy will wander the level searching for the player, and then attack. This functionality immediately depends on a spawning system, as enemies need to be generated in the scene at a specific location and at a specific interval. The spawning behavior could be achieved using the paired Instantiate and Destroy functions, for creating and removing objects respectively. These functions are slow, however, and should be avoided. It is better to generate a batch of enemies when the level starts up, hide them away, and then simply recycle the enemies when needed to appear...