// Add an extra projectile to the pool when needed. void AddExtraProjectileToPool() { lastProjectile = Instantiate <GameObject>(projectile, poolHolderTrans); lastProjectileScript = lastProjectile.GetComponent <StandardizedProjectile>(); lastProjectileScript.bowScript = this; lastProjectileScript.rigid = lastProjectile.GetComponent <Rigidbody>(); lastProjectileScript.PoolTheParticles(); // Pool and parent the particles lastProjectileScript.quiver = poolHolderTrans; lastProjectileRigidbody = lastProjectileScript.rigid; lastProjectile.SetActive(false); projectilePool.Enqueue(lastProjectile); projectilePoolSize++; }
void ProjectileObjectPool() { // Object pooling process of the projectiles on the first frame of the scene projectilePool = new Queue <GameObject>(); for (int i = 0; i < projectilePoolSize; i++) { lastProjectile = Instantiate <GameObject>(projectile, poolHolderTrans); lastProjectileScript = lastProjectile.GetComponent <StandardizedProjectile>(); lastProjectileScript.bowScript = this; lastProjectileScript.rigid = lastProjectile.GetComponent <Rigidbody>(); lastProjectileScript.PoolTheParticles(); // Pool and parent the particles lastProjectileScript.quiver = poolHolderTrans; lastProjectile.SetActive(false); projectilePool.Enqueue(lastProjectile); } }