public void Spawn(Transform trans = null, PowerupFactory.PowerUpsDirectoryType newSpawnType = PowerupFactory.PowerUpsDirectoryType.RANDOM) { if (_active && maxSpawnCount < 0 || currSpawnCount <= maxSpawnCount) { if (PowerupFactory.GetPUF() == null) { return; } int randType = 0; if (newSpawnType == PowerupFactory.PowerUpsDirectoryType.RANDOM) //spawnRandom){ { randType = Random.Range(0, PowerupFactory.GetPUF().powerUpRootTypes.Count); } else { randType = (int)newSpawnType; //(int)spawnType; } // PowerupBase spawnPU = PowerupFactory.GetPUF().GetPowerUp((PowerupFactory.PowerUpsDirectoryType)randType); if (spawnPU) { // make sure its active spawnPU.gameObject.SetActive(true); // who ever triggers spawn can set it to a transform if (trans != null) { spawnPU.transform.position = trans.position; } else { spawnPU.transform.position = this.transform.position; } spawnPU.ProcessReleased(); if (spawnPU.GetComponent <Rigidbody>()) { float randX = Random.Range(0, spawnForceX); float randY = Random.Range(0, spawnForceY); float randZ = Random.Range(0, spawnForceZ); spawnPU.GetComponent <Rigidbody>().AddForce(randX, randY, randZ); } releasedPowerUpTime = Time.time; currSpawnCount++; } else { releasedPowerUpTime = 0; } } }
public void SetType(PowerupFactory.PowerUpsDirectoryType newType) { type = newType; }