public GameObject GetBullet(enumBulletType type) { GameObject bullet = ObjectPooler.Current.GetPooledObject(type); if (bullet != null) { bullet.transform.position = this.bulletOrigin; bullet.transform.rotation = this.bulletRotation; bullet.SetActive(true); bullet.GetComponent <Rigidbody>().velocity = bullet.transform.forward * this.Velocity; } return(bullet); }
private GameObject CreateNewPooledObject(enumBulletType type) { switch (type) { case enumBulletType.Laser: GameObject laser = Instantiate(this.LaserPrefab, this.transform) as GameObject; laser.SetActive(false); return(laser); case enumBulletType.Plasma: GameObject plasma = Instantiate(this.PlasmaPrefab, this.transform) as GameObject; plasma.SetActive(false); return(plasma); } return(null); }
public GameObject GetPooledObject(enumBulletType type) { switch (type) { case enumBulletType.Laser: for (int i = 0; i < this.laserObjects.Count; i++) { if (this.laserObjects[i].activeInHierarchy == false) { return(this.laserObjects[i]); } } break; case enumBulletType.Plasma: for (int i = 0; i < this.plasmaObjects.Count; i++) { if (this.plasmaObjects[i].activeInHierarchy == false) { return(this.plasmaObjects[i]); } } break; } if (this.WillGrow) { GameObject obj = this.CreateNewPooledObject(type); switch (type) { case enumBulletType.Laser: this.laserObjects.Add(obj); return(obj); case enumBulletType.Plasma: this.plasmaObjects.Add(obj); return(obj); } } return(null); }