示例#1
0
    void Start()
    {
        while (transform.position.x > startPoint.x)
        {
            GameObject obj = pooler.getUnactiveObject();
            platformWidth = getWidthofPlatform(obj);
            float   height      = Random.Range(0.0f, 4.0f);
            Vector3 newPosition = new Vector3(startPoint.x + platformWidth / 2, transform.position.y + height, obj.transform.position.z);
            obj.transform.position = newPosition;
            obj.transform.rotation = transform.rotation;
            obj.SetActive(true);
            enemyGeneration.SpawnEnemy(obj);
            startPoint.x += platformWidth + Random.Range(minDistance, maxDistance);
            lastPlatform  = obj;

            if (Random.Range(0, 100) >= debuffThreshold)
            {
                float   newX           = (startPoint.x + newPosition.x + platformWidth / 2.0f) / 2.0f;
                float   newY           = newPosition.y + height + 2f;
                Vector3 debuffPosition = new Vector3(newX, newY, newPosition.z);
                debuffGenerator.spawnDebuff(debuffPosition);
            }


            if (Random.Range(0, 100) >= randomCoinThreshold)
            {
                newPosition.y += 1.0f;
                TheCoinGenerator.SpawnCoins(newPosition);
            }
        }
    }
示例#2
0
    void Update()
    {
        if (transform.position.x < groundPoint.position.x)
        {
            int   random   = Random.Range(0, groundPoolers.Length);
            float distance = groundWidths[random] / 3;
            float gap      = Random.Range(minGap, maxGap);
            float height   = Random.Range(minY, maxY);

            transform.position = new Vector3(
                transform.position.x + distance + gap,
                height,
                transform.position.z
                );

            GameObject ground = groundPoolers[random].GetPooledGameObject();
            ground.transform.position = transform.position;
            ground.SetActive(true);

            coinGenerator.SpawnCoins(transform.position, groundWidths[random]);

            transform.position = new Vector3(
                transform.position.x + distance,
                transform.position.y,
                transform.position.z
                );
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            platformSelector = Random.Range(0, objectPools.Length);

            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, heightChange, transform.position.z);

            GameObject newPlatform = objectPools[platformSelector].GetPooledObject();
            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                coinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2), transform.position.y, transform.position.z);
        }
    }
示例#4
0
 void CoinGeneration()
 {
     if (Random.Range(0f, 100f) < randomCoinThreshold)
     {
         theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, (transform.position.y + 1f), transform.position.z));
     }
 }
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetwen   = Random.Range(distanceBetwenMin, distanceBetwenMax);
            platformSelector = Random.Range(0, theObjectPoolers.Length);
            HeightChange     = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);
            if (HeightChange > maxHeight)
            {
                HeightChange = maxHeight;
            }
            else if (HeightChange < minHeight)
            {
                HeightChange = minHeight;
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector]) / 2 + distanceBetwen, HeightChange, transform.position.z);
            // Instantiate(thePlatforms[platformSelector], transform.position, transform.rotation);
            GameObject newPlatform = theObjectPoolers[platformSelector].GetPooledObject();
            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);
            if (Random.Range(0, 100) < randomCoinThreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }


            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector]) / 2, transform.position.y, transform.position.z);
        }
    }
示例#6
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween    = Random.Range(distanceBetweenMin, distanceBetweenMax);
            transform.position = new Vector3(transform.position.x + distanceBetween, Random.Range(-3.0f, -0.4f), transform.position.z);

            enemySelector = Random.Range(0, theObjectPools.Length);
            //Instantiate (/*theEnemy*/theEnemies[enemySelector], transform.position,transform.rotation);
            //Object Pooling

            GameObject newEnemy = theObjectPools[enemySelector].GetPooledObject();
            newEnemy.transform.position = transform.position;
            newEnemy.transform.rotation = transform.rotation;
            newEnemy.SetActive(true);

            theCoinGenerator.SpawnCoins(new Vector3(Random.Range(transform.position.x + distanceBetween / 4f, transform.position.x + (3f * distanceBetween / 4f)), Random.Range(-3.0f, -0.4f), transform.position.z));

            if (Random.Range(0f, 100f) <= powerupThreshold)
            {
                GameObject newPowerup = powerupPool.GetPooledObject();
                newPowerup.transform.position = new Vector3(Random.Range(transform.position.x, transform.position.x + distanceBetween), Random.Range(-3.0f, -0.4f), transform.position.z);
                newPowerup.transform.rotation = transform.rotation;
                newPowerup.SetActive(true);
            }
        }
    }
示例#7
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            platformSelector = Random.Range(0, theObjectPools.Length);

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, transform.position.y, transform.position.z);


            //Instantiate (/*thePlatform*/ thePlatforms[platformSelector], transform.position, transform.rotation);

            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2), transform.position.y, transform.position.z);
        }
    }
示例#8
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            //randomise platforms
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            platformSelector = Random.Range(0, theObjectPools.Length);

            //to randonly change platform height
            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }


            //generate platforms
            transform.position = new Vector3(transform.position.x + platformWidths[platformSelector] + distanceBetween, heightChange, transform.position.z);



            //Instantiate (/*thePlatform*/thePlatforms[platformSelector], transform.position, transform.rotation);

            //change to use obj pooler to generate platforms
            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            //generate coins 'randomly'
            if (Random.Range(0f, 100f) < randomCoinRate)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }

            //generate spikes randomlyy
            if (Random.Range(0f, 100f) < randomSpikeRate)
            {
                GameObject newSpike = spikePool.GetPooledObject();

                float spikeXPosition = Random.Range(-platformWidths [platformSelector] / 2 + 1f, platformWidths [platformSelector] / 2 - 1f);


                Vector3 spikePosition = new Vector3(spikeXPosition, 0.5f, 0f);

                newSpike.transform.position = transform.position + spikePosition;
                newSpike.transform.rotation = transform.rotation;
                newSpike.SetActive(true);
            }
            transform.position = new Vector3(transform.position.x + platformWidths[platformSelector], transform.position.y, transform.position.z);
        }
    }
示例#9
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            platformSelector = Random.Range(0, theObjectPools.Length);

            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            if (Random.Range(0f, 100f) < powerupThreshold)
            {
                GameObject newPowerup = powerupPool.GetPooledObject();

                newPowerup.transform.position = transform.position + new Vector3(distanceBetween / 2f, Random.Range(powerupHeight / 2f, powerupHeight), 0f);
                newPowerup.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, heightChange, transform.position.z);

            // Instantiate(/* thePlatform */ thePlatforms[platformSelector], transform.position, transform.rotation);

            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);


            if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }

            if (Random.Range(0f, 100f) < randomSpikeThreshold)
            {
                GameObject newSpike = spikePool.GetPooledObject();

                float spikeXPosition = Random.Range(-platformWidths[platformSelector] / 2f + 1f, platformWidths[platformSelector] / 2f - 1f);

                Vector3 spikePosition = new Vector3(spikeXPosition, 0.5f, 0f);

                newSpike.transform.position = transform.position + spikePosition;
                newSpike.transform.rotation = transform.rotation;
                newSpike.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2), transform.position.y, transform.position.z);
        }
    }
示例#10
0
 // Generate Coins
 void coinGenerate()
 {
     if (Random.Range(0f, 100f) < randomCoinThreshold)
     {
         //Generating random Coins
         theCoinGenerator.SpawnCoins(platformSelector, platformWidths[platformSelector], new Vector3(transform.position.x, transform.position.y + 1.5f, transform.position.z));
     }
 }
示例#11
0
 void generateCoins()
 {
     // generate coins on top of the new platform
     if (Random.Range(0f, 100f) < randomCoinThreshold)
     {
         coinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z), 4); // num coins
     }
 }
示例#12
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            //Randomly generates the range between the platforms
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            //Randomly selects the size of the platform
            platformSelector = Random.Range(0, theObjectPools.Length);

            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            //The x and y distance for each platform
            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, heightChange, transform.position.z);

            //Instantiating objects (Currently best for testing)
            //Instantiate(/*thePlatorm*/ thePlatforms[platformSelector], transform.position, transform.rotation);

            //Pooling helps to use memory efficiently instead of creating and destroying
            //which uses more memory than required.
            GameObject newPlatform = theObjectPools[platformSelector].getPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            //Coin Generator
            if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }

            //Spike Generator
            if (Random.Range(0f, 100f) < randomSpikeThreshold)
            {
                GameObject newSpike = spikePool.getPooledObject();

                float spikeXPosition = Random.Range(-platformWidths[platformSelector] / 2f + 1f, platformWidths[platformSelector] / 2f - 1f);

                Vector3 spikePosition = new Vector3(spikeXPosition, .5f, 0f);

                newSpike.transform.position = transform.position + spikePosition;
                newSpike.transform.rotation = transform.rotation;
                newSpike.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, transform.position.y, transform.position.z);
        }
    }
示例#13
0
    void Update()
    {
        if (transform.position.x < GenerationPoint.position.x)
        {
            DistanceBetween  = Random.Range(DistanceBetweenMin, DistanceBetweenMax);
            platformSelector = Random.Range(0, ObjectPools.Length);

            heightChange = transform.position.y + Random.Range(-MaxHeightChange, MaxHeightChange);

            if (heightChange > maxPlatformHeight)
            {
                heightChange = maxPlatformHeight;
            }
            else if (heightChange < minPlatformHeight)
            {
                heightChange = minPlatformHeight;
            }

            transform.position = new Vector3(transform.position.x + (plaformWidths[platformSelector] / 2) + DistanceBetween, heightChange, transform.position.z);

            if (Random.Range(0, 100f) < RandomPowerupThreshold)
            {
                var newPowerup = PowerupPool.GetPooledObject();

                newPowerup.transform.position = transform.position + new Vector3(DistanceBetween / 2, Random.Range(PowerupHeight / 2, PowerupHeight), 0f);
                newPowerup.transform.rotation = transform.rotation;

                newPowerup.SetActive(true);
            }

            var newPlatform = ObjectPools[platformSelector].GetPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            if (Random.Range(0, 100f) < RandomCoingThreshold)
            {
                coinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1.5f, transform.position.z));
            }

            if ((Random.Range(0, 100f) < RandomSpikeThreshold) && ShouldCreateSpikes)
            {
                var newSpike       = SpikePool.GetPooledObject();
                var spikeXPosition = Random.Range(-plaformWidths[platformSelector] / 2f + 1f, plaformWidths[platformSelector] / 2f - 1f);
                var spikePosition  = new Vector3(spikeXPosition, 0.5f, 0f);

                newSpike.transform.position = transform.position + spikePosition;
                newSpike.transform.rotation = transform.rotation;

                newSpike.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + (plaformWidths[platformSelector] / 2), transform.position.y, transform.position.z);
        }
    }
示例#14
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            platformSelector = Random.Range(0, theObjectPools.Length);
            heightChange     = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2f) + distanceBetween, heightChange, transform.position.z);

            //Instantiate(/*thePlatform*/ theObjectPools[platformSelector], transform.position, transform.rotation);

            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            if (Random.Range(0f, 100f) < randomCoinTreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 2f, transform.position.z));
            }

            if (Random.Range(0f, 100f) < randomGreenblobTreshold)
            {
                greenBlobGenerator.SpawnBlob(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }

            if (Random.Range(0f, 100f) < randomSpikeTreshold)
            {
                //theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
                GameObject newSpike = spikepool.GetPooledObject();

                float spikeXPosition = Random.Range((-platformWidths[platformSelector] / 2f) + 2f, (platformWidths[platformSelector] / 2f) - 2f);

                Vector3 spikePosition = new Vector3(spikeXPosition, 1f, 0f);

                newSpike.transform.position = transform.position + spikePosition;
                newSpike.transform.rotation = transform.rotation;
                newSpike.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2f), transform.position.y, transform.position.z);
        }
    }
示例#15
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            platformSelector = Random.Range(0, theObjectPools.Length);

            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, heightChange, transform.position.z);


            //Instantiate(/*thePlatform*/thePlatforms[platformSelector], transform.position, transform.rotation);

            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();
            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            //this stops coins being spawned on everysingle platform and randomizes which platform it spawns on
            if (Random.Range(0f, 100f) < randomCoinTreshold)
            {
                //spawns coins on top of platforms
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }

            //pooling the spikes
            if (Random.Range(0f, 100f) < randomSpikeThreshold)
            {
                GameObject newSpike       = spikePool.GetPooledObject();
                float      spikeXPosition = Random.Range(-platformWidths[platformSelector] / 2f + 1f, platformWidths[platformSelector] / 2f - 1f);

                //the spikes will spawn in different spots on the platforms rather than a single spot every time. making the game a little harder
                Vector3 spikePosition = new Vector3(spikeXPosition, 0.2f, 0f);

                newSpike.transform.position = transform.position + spikePosition;
                newSpike.transform.rotation = transform.rotation;
                newSpike.SetActive(true);
            }


            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2), transform.position.y, transform.position.z);
        }
    }
示例#16
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween  = Random.Range(distanceBetweenMin, distanceBetweenMax);
            platformSelector = Random.Range(0, thePlatforms.Length);
            heightChange     = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);
            //transform.position=new Vector3(transform.position.x+platformWidths[platformSelector]+distanceBetween,transform.position.y,transform.position.z);
            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else
            {
                if (heightChange < minHeight)
                {
                    heightChange = minHeight;
                }
            }
            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, heightChange, transform.position.z);
            //Instantiate(thePlatform,transform.position,transform.rotation);
            //Instantiate(thePlatforms[platformSelector],transform.position,transform.rotation);

            /*GameObject newPlatform=theObjectPool.GetPooledObject();
             * newPlatform.transform.position=transform.position;
             * newPlatform.transform.rotation=transform.rotation;
             * newPlatform.SetActive(true);*/

            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();
            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);
            //#14 Random Coin Placement
            if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                //generate Coin above platform
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1, transform.position.z));
            }
            //#20 Extra Danger Spikes
            if (Random.Range(0f, 100f) < randomSpikeThreshold)
            {
                GameObject newSpike = spikePool.GetPooledObject();

                float   spikeXPosition = Random.Range(-platformWidths[platformSelector] / 2f + 1f, platformWidths[platformSelector] / 2f - 1f);
                Vector3 spikePosition  = new Vector3(spikeXPosition, 1f, 0f);
                newSpike.transform.position = transform.position + spikePosition;
                newSpike.transform.rotation = transform.rotation;
                newSpike.SetActive(true);
            }
            //
            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2f) + distanceBetween, transform.position.y, transform.position.z);
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)                      //  if where we are right nw is more left than generation point
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax); //  distance between is a value between minimum distance and maximum

            platformSelector = Random.Range(0, theObjectPools.Length);              //  length = amount of objects in array... select random platform in array

            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)   //  assures platforms stay within range ive set up. cant go off screen
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, heightChange, transform.position.z);


            // Instantiate(/*thePlatform*/thePlatforms[platformSelector], transform.position, transform.rotation);


            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();    //  create new platform object = free object from list

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);    //  every object in list is inactive, must set active


            if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x + 3f, transform.position.y + 2f, transform.position.z)); //  after new platform created but before moved
            }

            if (Random.Range(0f, 100f) < randomSpikeThreshold)
            {
                GameObject newSpike = spikePool.GetPooledObject();                                                                //  go to spike pool, get object not being used

                float spikeXPosition = Random.Range(-platformWidths[platformSelector] / 2, platformWidths[platformSelector] / 2); //  choose random x position on platform to spawn spikes.

                Vector3 spikePosition = new Vector3(spikeXPosition, 0.5f, 0f);                                                    //  move spike up half so its on top of tile

                newSpike.transform.position = transform.position + spikePosition;
                newSpike.transform.rotation = transform.rotation;
                newSpike.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2), transform.position.y, transform.position.z);
        }
    }
示例#18
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            platformSelector = Random.Range(0, theObjectPools.Length);

            //chaning the height of the ground
            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            transform.position = new Vector2(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, heightChange);


            //Instantiate(theObjectPools[platformSelector], transform.position, transform.rotation);

            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 2f, transform.position.z));
            }

            if (Random.Range(0f, 100f) < randomSpikeThreshold)
            {
                GameObject newSpike = spikePool.GetPooledObject();
                //spike position

                float   spikeXPosition = Random.Range(-platformWidths[platformSelector] / 2f, platformWidths[platformSelector] / 2f);
                Vector3 spikePosition  = new Vector3(spikeXPosition, 1f, 0f);

                newSpike.transform.position = transform.position + spikePosition;
                newSpike.transform.rotation = transform.rotation;
                newSpike.SetActive(true);
            }

            transform.position = new Vector2(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, transform.position.y);
        }
    }
示例#19
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)         //If the x position of the PlatformGenerator is less than the Generation Point's x position
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            platformSelector = Random.Range(0, theObjectPools.Length);

            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, heightChange, transform.position.z);


            //Instantiate (/* thePlatform */ thePlatforms[platformSelector], transform.position, transform.rotation); //Create new platform

            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();              //Create a new platform equal to an unused object from theObjectPool.pooledObjects list

            platformLastChildIndex = newPlatform.gameObject.transform.childCount - 1;

            newPlatform.transform.position = transform.position;


            newPlatform.gameObject.transform.GetChild(0).GetComponent <SpriteRenderer>().sprite = platformSprites[0 + biome];

            newPlatform.gameObject.transform.GetChild(newPlatform.gameObject.transform.childCount - 1).GetComponent <SpriteRenderer>().sprite = platformSprites[2 + biome];

            for (int i = 1; i < newPlatform.gameObject.transform.childCount - 1; i++)
            {
                newPlatform.gameObject.transform.GetChild(i).GetComponent <SpriteRenderer>().sprite = platformSprites[1 + biome];
            }


            newPlatform.SetActive(true);              //activates object

            if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));                  //Spawn Coins
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2), transform.position.y, transform.position.z);
        }
    }
示例#20
0
    // Update is called once per frame
    void FixedUpdate()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(minDistanceBetween, maxDistanceBetween);

            platformSelector = Random.Range(0, theObjectPools.Length);

            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, heightChange, transform.position.z);

            //Instantiate(thePlatform, transform.position, transform.rotation);

            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObjects();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            if (Random.Range(0f, 100f) > randomCoinThreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 2f, transform.position.z));
            }

            if (Random.Range(0f, 100f) > randomSpikeThreshold)
            {
                GameObject newSpike = theSpikePool.GetPooledObjects();

                float xPosition = Random.Range(-platformWidths[platformSelector] / 2 + 1f, platformWidths[platformSelector] / 2 - 1f);

                Vector3 spikePosition = new Vector3(0f, 1f, 0f);

                newSpike.transform.position = transform.position + spikePosition;
                newSpike.transform.rotation = transform.rotation;
                newSpike.SetActive(true);
            }


            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2), transform.position.y, transform.position.z);
        }
    }
示例#21
0
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            platformIndex = Random.Range(0, pools.Length);

            heightChange = transform.position.y + Random.Range(-maxHeightChange, maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }


            transform.position = new Vector3(transform.position.x + (platformWidths[platformIndex] / 2) + distanceBetween, heightChange, transform.position.z);

            //Instantiate(platforms[platformIndex], transform.position, transform.rotation);

            GameObject newPlatform = pools[platformIndex].GetPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                coinGen.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }

            if (Random.Range(0f, 100f) < randomSpikeTheshold)
            {
                GameObject spike = spikePool.GetPooledObject();


                float   spikeXPosition = Random.Range(-platformWidths[platformIndex] / 2f + 1f, platformWidths[platformIndex] / 2f - 1f);
                Vector3 spikePosition  = new Vector3(spikeXPosition, 0.5f, 0f);
                spike.transform.position = transform.position + spikePosition;
                spike.transform.rotation = transform.rotation;
                spike.SetActive(true);
            }


            transform.position = new Vector3(transform.position.x + (platformWidths[platformIndex] / 2), transform.position.y, transform.position.z);
        }
    }
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, heightChange, transform.position.z);

            platformSelector = Random.Range(0, theObjectPools.Length);

            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1.5f, transform.position.z));
            }

            if (Random.Range(0f, 100f) < randomGhostThreshold)
            {
                GameObject newGhost = ghostPool.GetPooledObject();

                float ghostXPosition = Random.Range(-platformWidths[platformSelector] / 2, platformWidths[platformSelector] / 2);

                float ghostYPosition = Random.Range(-1.5f, 1.5f);

                Vector3 ghostPosition = new Vector3(ghostXPosition, ghostYPosition, 0f);

                newGhost.transform.position = transform.position + ghostPosition;
                newGhost.transform.rotation = transform.rotation;
                newGhost.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, transform.position.y, transform.position.z);
        }
    }
示例#23
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generatorPoint.position.x)
        {
            distBetweenPlat = Random.Range(distBetweenMin, distBetweenMax);

            platformOption = Random.Range(0, theObjectPools.Length);

            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            transform.position = new Vector3(transform.position.x + (platformsWidth[platformOption] / 2) + distBetweenPlat, heightChange, transform.position.z);

            //Instantiate(/*platform*/ theObjectPools[platformOption], transform.position, transform.rotation);


            GameObject newPlatform = theObjectPools[platformOption].GetPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            if (Random.Range(0f, 10f) < randomCoinThreshold)
            {
                coinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 0.2f, transform.position.z));
            }

            if (Random.Range(0f, 10f) < randomHazardThreshold)
            {
                GameObject newHazard = hazardGenerator.GetPooledObject();

                float   hazardXPosition = Random.Range(-platformWidth / 2f, platformWidth / 2f);
                Vector3 hazardSposition = new Vector3(hazardXPosition, 0.5f, 0f);

                newHazard.transform.position = transform.position + hazardSposition;
                newHazard.transform.rotation = transform.rotation;
                newHazard.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + (platformsWidth[platformOption] / 2), transform.position.y, transform.position.z);
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            platformSelector   = Random.Range(0, theObjectPools.Length);
            distanceBetween    = Random.Range(distanceBetweenMin, distanceBetweenMax);
            heightChange       = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);
            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween,
                                             Mathf.Clamp(heightChange, minHeight, maxHeight),
                                             transform.position.z);

            if (Random.Range(0f, 100f) < powerupThreshhold)
            {
                GameObject newPowerup = powerupPool.GetPooledObject();
                newPowerup.transform.position = transform.position + new Vector3(
                    distanceBetween / 2,
                    Random.Range(1f, powerupHeight),
                    0f);
                newPowerup.SetActive(true);
            }
            //object pooling
            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();
            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x,
                                                        transform.position.y + 1f,
                                                        transform.position.z));
            }

            if (Random.Range(0f, 100f) < randomSpikeThreshold)
            {
                GameObject newSpike       = spikePooler.GetPooledObject();
                float      spikeXPosition = Random.Range(-platformWidths[platformSelector] / 2 + 2f, platformWidths[platformSelector] / 2 - 2f);
                Vector3    spikePosition  = new Vector3(spikeXPosition, 0.5f, 0f);

                newSpike.transform.position = transform.position + spikePosition;
                newSpike.transform.rotation = transform.rotation;
                newSpike.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween,
                                             transform.position.y,
                                             transform.position.z);
        }
    }
示例#25
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            platformSelector = Random.Range(0, objectPoolers.Length);

            heightChange = Mathf.Max(minHeight, Mathf.Min(maxHeight, transform.position.y + Random.Range(-maxHeightChange, maxHeightChange)));

            if (Random.Range(0f, 100f) < powerupTreshold)
            {
                GameObject newPowerup = powerupPool.GetPooledObject();

                newPowerup.transform.position = new Vector3(transform.position.x + distanceBetween / 2f, Mathf.Max(minHeight, Mathf.Min(maxHeight, transform.position.y + Random.Range(0f, powerupHeight))), transform.position.z);

                newPowerup.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + platformWidths[platformSelector] / 2 + distanceBetween, heightChange, transform.position.z);

            //Instantiate (platforms[platformSelector], transform.position, transform.rotation);

            GameObject newPlatform = objectPoolers[platformSelector].GetPooledObject();
            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            if (Random.Range(0f, 100f) < randomCoinTreshold)
            {
                coinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }

            BoxCollider2D newPlatformCollider = newPlatform.GetComponent <BoxCollider2D> ();

            if (newPlatformCollider.size.x > 4 && Random.Range(0f, 100f) < randomSpikeTreshold)
            {
                GameObject newSpike = spikePool.GetPooledObject();

                float   posX = Random.Range(-platformWidths [platformSelector] / 2 + 1f, platformWidths [platformSelector] / 2 - 1f);
                Vector3 pos  = new Vector3(posX, newPlatform.GetComponent <BoxCollider2D> ().size.y / 2, 0f);
                newSpike.transform.position = transform.position + pos;
                newSpike.transform.rotation = transform.rotation;
                newSpike.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + platformWidths[platformSelector] / 2, transform.position.y, transform.position.z);
        }
    }
示例#26
0
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(distanceWidthMin, distanceWidthMax);

            randomizeSelector = Random.Range(0, objectPools.Length);

            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            transform.position = new Vector3(transform.position.x + (platformsWidths[randomizeSelector] / 2) + distanceBetween, heightChange, transform.position.z);



            //get new platform from already created platformPool
            GameObject newPlatform = objectPools[randomizeSelector].GetPooledObject();
            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            if (Random.Range(0f, 100f) < randomCoinMaxCuantity)
            {
                coinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }
            if (Random.Range(0f, 100f) < randomMonsterTreashhold)
            {
                GameObject newMonster = monsterPool.GetPooledObject();

                Vector3 monsterPosition = new Vector3(0f, 1.5f, 0f);

                newMonster.transform.position = transform.position + monsterPosition;
                newMonster.transform.rotation = transform.rotation;
                newMonster.SetActive(true);
            }


            transform.position = new Vector3(transform.position.x + (platformsWidths[randomizeSelector] / 2), transform.position.y, transform.position.z);
        }
    }
    // Update is called once per frame
    void Update()
    {
        // si este objeto (en la mitad de la ultima plataforma) es menor que el pto de generacion(afuera de la camara)
        if (transform.position.x < generationPoint.position.x)
        {
            // la distancia entre este objeto(la plataforma) y el punto de generacion va a ser un numero random entre los valores min y max
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);  //
                                                                                     // se selecciona una plataforma random desde la posicion 0 hasta el tamaño del arreglo de las plataformas
            platformSelector = Random.Range(0, theObjectPools.Length);
            // el cambio de altura sera un numero random entre el maximo cambio de altura y su opuesto
            heightChange = transform.position.y + Random.Range(maxHeigthChange, -maxHeigthChange);

            // CONDICIONAL QUE LIMITA EL CAMBIO DE LAS ALTURAS PARA QUE ASI NO ESTEN FUERA DE CAMARA

            // si el cambio de altura es mayor a la maxima altura
            if (heightChange > maxHeight)
            {
                // el cambio de altura sera el maximo cambio
                heightChange = maxHeight;
                // si no y si el cambio de altura es menor a la altura minima
            }
            else if (heightChange < minHeight)
            {
                // el cambio de altura sera el la minima altura
                heightChange = minHeight;
            }

            // la posicion de este objeto sera el mismo MAS el ancho de esta plataforma y la distancia de esta misma hasta el pto de generacion
            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, heightChange, 0);

            // instancia (crea) las plataformas que se han seleccionado arbitrariamente desde el arreglo de las plataformas
            //Instantiate (/*thePlatform */thePlatforms[platformSelector], transform.position, transform.rotation);


            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;

            newPlatform.SetActive(true);

            if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }
            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2), transform.position.y, 0);
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            platformSelector = Random.Range(0, theObjectPools.Length);

            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            transform.position = new Vector3(transform.position.x + platformWidths[platformSelector] + distanceBetween, heightChange, transform.position.z);

            //Instantiate(thePlatforms[platformSelector], transform.position, transform.rotation);

            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);


            /* if(Random.Range(0f,100f) < randomCoinThreshold)
             * {
             *  theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + platformHeight, transform.position.z), (platformWidths[platformSelector] / 3));
             *  transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2)  + distanceBetween, transform.position.y, transform.position.z);
             * } */

            if (Random.Range(0f, 100f) < randomDiamondThreshold)
            {
                theCoinGenerator.SpawnDiamonds(new Vector3(transform.position.x, transform.position.y + platformHeight, transform.position.z));
            }
            else if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + platformHeight, transform.position.z), (platformWidths[platformSelector] / 3));
                transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, transform.position.y, transform.position.z);
            }
        }
    }
示例#29
0
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            platformSelector = Random.Range(0, theObjectPools.Length);

            if (Random.Range(0f, 100f) < powerupTreshold)
            {
                GameObject newPowerup = powerupPool.GetPooledObject();

                newPowerup.transform.position = transform.position + new Vector3(distanceBetween / 2f, Random.Range(powerupHeight / 2, powerupHeight), 0f);

                newPowerup.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, transform.position.y, transform.position.z);

            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);


            if (Random.Range(0f, 100f) < randomCoinTreshold)
            {
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + theCoinGenerator.distanceFromGround, transform.position.z));
            }

            if (Random.Range(0f, 100f) < randomSpikeTreshold)
            {
                GameObject newSpike = deathBlocks.GetPooledObject();

                float spikeXPosition = Random.Range(-platformWidths[platformSelector] + 1f / 2, platformWidths[platformSelector] / 2 - 1f);

                Vector3 spikePosition = new Vector3(spikeXPosition, 0.5f, -1f);

                newSpike.transform.position = transform.position + spikePosition;
                newSpike.transform.rotation = transform.rotation;
                newSpike.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2), transform.position.y, transform.position.z);
        }
    }
示例#30
0
    // Update is called once per frame
    void Update()
    {
        if (transform.position.x < generationPoint.position.x)
        {
            distanceBetween = Random.Range(distanceBetweenMin, distanceBetweenMax);

            // Selects a platform at random from the range of platforms created.
            platformSelector = Random.Range(0, theObjectPools.Length);

            // Change the height of platform.
            heightChange = transform.position.y + Random.Range(maxHeightChange, -maxHeightChange);

            // Validation: Spawn platforms within the view of the camera and within certain heights.
            if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, heightChange, transform.position.z);

            // Instantiates the platform randomly chosen from the platformSelector.
            //Instantiate(/*thePlatform*/ thePlatforms[platformSelector], transform.position, transform.rotation);

            // Creates a newPlatform and grabs the platform object from the object pool.
            GameObject newPlatform = theObjectPools[platformSelector].GetPooledObject();

            newPlatform.transform.position = transform.position;
            newPlatform.transform.rotation = transform.rotation;
            newPlatform.SetActive(true);

            /*
             * So if you set randomCoinThreshold to 75 you should see coins 3/4 of the time, 25 would see coulds 1/4 of the time etc...
             */
            if (Random.Range(0f, 100f) < randomCoinThreshold)
            {
                // Generate coins above the platform.
                theCoinGenerator.SpawnCoins(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }
            // Similar line as the one a few lines above, repeated here so that spaces inbetween platforms is consistant.
            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2), transform.position.y, transform.position.z);
        }
    }