Пример #1
0
    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;
 }