public void DestroyBullet() { //Original destruction approach (BAD FOR PERFORMANCE): //Destroy(gameObject); //First time destroying by using ObjectPooling: //GameObject.Find("BulletPooling").GetComponent<ObjectPooling>().ReturnToPool(gameObject); //Final version of our ObjectPooling: ObjectPooling.Find("BulletPooling").ReturnToPool(gameObject); }
public GameObject Shoot() { //Original individual instantion approach (BAD FOR PERFORMANCE): //GameObject bullet = Instantiate(shot, shotSpawn.position, shotSpawn.rotation); //First time spawning by using ObjectPooling: //GameObject bullet = GameObject.Find("BulletPooling").GetComponent<ObjectPooling>().Spawn(shotSpawn.position, shotSpawn.rotation); //Final version of our ObjectPooling: GameObject bullet = ObjectPooling.Find("BulletPooling").Spawn(shotSpawn.position, shotSpawn.rotation); return(bullet); }