コード例 #1
0
ファイル: ItemManager.cs プロジェクト: quwanger/ggj2019
    void SpawnPowerups()
    {
        chanceOfSpawningPowerup += Time.deltaTime / 100f;
        chanceOfSpawningPowerup  = Mathf.Clamp(chanceOfSpawningPowerup, 0, 1f);

        float powerupToSpawn = Random.Range(0f, 1f);

        if (powerupToSpawn <= chanceOfSpawningPowerup)
        {
            //spawn powerup
            powerupToSpawn = Random.Range(0f, 1f);
            GameObject objectToSpawn   = null;
            Powerups   powerupType     = Powerups.None;
            float      powerupSpeedMin = 0f;
            float      powerupSpeedMax = 0f;
            float      powerupMassMin  = 0f;
            float      powerupMassMax  = 0f;

            if (powerupToSpawn < 0.9f)
            {
                // spawn missile
                objectToSpawn = missile;
                powerupType   = Powerups.Missile;

                powerupSpeedMin = 100f;
                powerupSpeedMax = 120f;
                powerupMassMin  = 50f;
                powerupMassMax  = 100f;
            }

            /*else if (powerupToSpawn < 0.8f)
             * {
             *  // spawn star
             *  objectToSpawn = star;
             *  powerupType = Powerups.Star;
             *
             *  powerupSpeedMin = 1f;
             *  powerupSpeedMax = 5f;
             *  powerupMassMin = 1f;
             *  powerupMassMax = 5f;
             * }*/
            else
            {
                // spawn asteroid
                objectToSpawn = asteroid;
                powerupType   = Powerups.Asteroid;

                powerupSpeedMin = 50f;
                powerupSpeedMax = 100f;
                powerupMassMin  = 20f;
                powerupMassMax  = 40f;
            }


            // Instantiate item with the random x and y parameters
            Vector3           spawnPosition = GetSpawnPosition();
            GameObject        item          = Instantiate(objectToSpawn, spawnPosition, Quaternion.identity);
            PowerupController powerup       = item.GetComponent <PowerupController>();
            powerup.Setup(0, GetSpawnDirection(spawnPosition), Random.Range(powerupSpeedMin, powerupSpeedMax), Random.Range(powerupMassMin, powerupMassMax));
            powerup.SetPowerupType(powerupType);
        }
    }