public GameObject getPoolObject(POOL_OBJECT_TYPE type) { List <GameObject> effectList = null; switch (type) { case POOL_OBJECT_TYPE.FireEXplosionParticle: effectList = basicFireExplosionParticlesList; break; case POOL_OBJECT_TYPE.DroneExplosion: effectList = basicDroneExplosionList; break; case POOL_OBJECT_TYPE.HitBasicParticle: effectList = bulletHitBasicParticleList; break; case POOL_OBJECT_TYPE.BasicProjectile: effectList = basicProjectilesList; break; case POOL_OBJECT_TYPE.ElectricParticleEffect: effectList = electricParticleEffectList; break; default: effectList = null; break; case POOL_OBJECT_TYPE.SmokeEffect: effectList = smokeEffectList; break; case POOL_OBJECT_TYPE.RifleAmmo: effectList = rifleAmmoList; break; case POOL_OBJECT_TYPE.PistolAmmo: effectList = pistolAmmoList; break; } foreach (GameObject projectile in effectList) { if (!projectile.activeInHierarchy) { return(projectile); } } return(null); }
private void initalziePool(POOL_OBJECT_TYPE typeofEffect) { string resourcePath = ""; List <GameObject> effectList = null; int count = 0; switch (typeofEffect) { case POOL_OBJECT_TYPE.FireEXplosionParticle: resourcePath = "ParticleEffects/Explosion_fire"; count = maxExplosions; basicFireExplosionParticlesList = new List <GameObject>(); effectList = basicFireExplosionParticlesList; break; case POOL_OBJECT_TYPE.DroneExplosion: resourcePath = "Explosions/BasicDroneExplosion"; count = donreExplosions; basicDroneExplosionList = new List <GameObject>(); effectList = basicDroneExplosionList; break; case POOL_OBJECT_TYPE.HitBasicParticle: count = maxExplosions; resourcePath = "ParticleEffects/BulletHitBasicParticle"; bulletHitBasicParticleList = new List <GameObject>(); effectList = bulletHitBasicParticleList; break; case POOL_OBJECT_TYPE.BasicProjectile: count = maxBulletCount; resourcePath = "Prefab/LaserBeamProjectile"; basicProjectilesList = new List <GameObject>(); effectList = basicProjectilesList; break; case POOL_OBJECT_TYPE.ElectricParticleEffect: count = maxExplosions; resourcePath = "ParticleEffects/ElectricShock"; electricParticleEffectList = new List <GameObject>(); effectList = electricParticleEffectList; break; case POOL_OBJECT_TYPE.SmokeEffect: count = maxExplosions; resourcePath = "ParticleEffects/SmokeParticleEffect"; smokeEffectList = new List <GameObject>(); effectList = smokeEffectList; break; case POOL_OBJECT_TYPE.RifleAmmo: count = ammoCount; resourcePath = "Drops/Rifle_Mag"; rifleAmmoList = new List <GameObject>(); effectList = rifleAmmoList; break; case POOL_OBJECT_TYPE.PistolAmmo: count = ammoCount; resourcePath = "Drops/Pistol_Mag"; pistolAmmoList = new List <GameObject>(); effectList = pistolAmmoList; break; } GameObject bulletHitBasicParticlePrefab = Resources.Load <GameObject>(resourcePath); for (int i = 0; i < count; i++) { GameObject bulletHitParticle = GameObject.Instantiate(bulletHitBasicParticlePrefab); bulletHitParticle.transform.parent = this.transform; bulletHitParticle.SetActive(false); effectList.Add(bulletHitParticle); } }