Пример #1
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, 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(0, 100) < randomCoinNumber)
            {
                theCoinGenerator.SpawnCoin(new Vector3(transform.position.x, transform.position.y + 1f, transform.position.z));
            }

            else if (Random.Range(0, 100) < randomTrashNumber)
            {
                GameObject newTrash = trashPool.GetPooledObject();

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

                Vector3 trashPosition = new Vector3(trashXPosition, 1f, 0f);
                newTrash.transform.position = transform.position + trashPosition;
                newTrash.transform.rotation = transform.rotation;
                newTrash.SetActive(true);
            }

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2), transform.position.y, transform.position.z);
        }
    }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        // so camera's x position passed the transform position, make a platform
        if (transform.position.x < generationPoint.position.x)
        {
            // random distance
            distanceBetweenPlatforms = Random.Range(distanceMin, distanceMax);
            platformSelector         = Random.Range(0, platformPrefab.Length);

            transform.position = new Vector3(transform.position.x + distanceBetweenPlatforms, heightChange, transform.position.z);

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

            if (heightChange < maxHeight && heightChange > transform.position.y)
            {
                heightChange = maxHeight;
            }
            else if (heightChange > minHeight && heightChange < transform.position.y)
            {
                heightChange = minHeight + (maxHeight * 0.5f);
            }
            else if (heightChange > maxHeight)
            {
                heightChange = maxHeight;
            }
            else if (heightChange < minHeight)
            {
                heightChange = minHeight;
            }

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

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

            // coin
            coinGenerator.SpawnCoin(new Vector3(transform.position.x, transform.position.y + 2.0f, transform.position.z));

            // hazard
            hazardGenerator.SpawnHazard(new Vector3(transform.position.x + 5.0f, transform.position.y + 1.0f, transform.position.z));

            // item
            itemGenerator.SpawnItem(new Vector3(transform.position.x, transform.position.y + 0.5f, transform.position.z));
        }
    }
Пример #3
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, theObjectPoolers.Length);

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

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

            transform.position = new Vector3(transform.position.x + (platformWidths[platformSelector] / 2) + distanceBetween, 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.GetComponent <Rigidbody2D> ().isKinematic = true;
            newPlatform.SetActive(true);

            if (Random.Range(0f, 100f) < coinTreshold)
            {
                float coinPlace = Random.Range(-(platformWidths [platformSelector] / 2), (platformWidths [platformSelector] / 2));
                theCoinGenerator.SpawnCoin(new Vector3(transform.position.x + coinPlace, transform.position.y + 1.5f, transform.position.z));
            }

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

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

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

            heigthChange = Mathf.Clamp(heigthChange, minHeight, maxHeight);

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


            if (platformSelector == objPoolerArray.Length)
            {
                platformSelector = objPoolerArray.Length - 1;
            }

            GameObject newPlatform = objPoolerArray[platformSelector].GetObjectFromPool();

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

            if (Random.Range(0, 100) < coinThreshold)
            {
                int   coinCount  = Random.Range(0, 4);
                float coinHeight = 1f;
                if (heigthChange > 3f)
                {
                    coinHeight = Random.Range(1f, 2f);
                }
                else
                {
                    coinHeight = Random.Range(1f, 4f);
                }

                if (coinCount > 2 && coinCount <= 3)
                {
                    for (int i = 0; i < 3; i++)
                    {
                        coinGenerator.SpawnCoin(new Vector3(transform.position.x + ((float)i * coinGenerator.distanceBetweenCoins), transform.position.y + coinHeight, transform.position.z));
                    }
                }
                else if (coinCount > 1 && coinCount <= 2)
                {
                    for (int i = 0; i < 2; i++)
                    {
                        coinGenerator.SpawnCoin(new Vector3(transform.position.x + ((float)i * coinGenerator.distanceBetweenCoins), transform.position.y + coinHeight, transform.position.z));
                    }
                }
                else
                {
                    for (int i = 0; i < 1; i++)
                    {
                        coinGenerator.SpawnCoin(new Vector3(transform.position.x + ((float)i * coinGenerator.distanceBetweenCoins), transform.position.y + coinHeight, transform.position.z));
                    }
                }
            }

            if (Random.Range(0, 100) < spikeThreshold)
            {
                GameObject spike = spikePool.GetObjectFromPool();

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

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

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

            if (Random.Range(0, 100) < bonushealthThreshhold)
            {
                float healthHeight = 1f;
                if (heigthChange > 3f)
                {
                    healthHeight = Random.Range(1f, 2f);
                }
                else
                {
                    healthHeight = Random.Range(1f, 4f);
                }

                GameObject bonushealth = bonushealthPool.GetObjectFromPool();

                float bonusHealthXPosition = Random.Range(-platformWidthArray[platformSelector] / 2, platformWidthArray[platformSelector] / 2);

                Vector3 bonusHealthPosition = new Vector3(bonusHealthXPosition, 1f + healthHeight, 0f);

                bonushealth.transform.position = transform.position + bonusHealthPosition;
                bonushealth.transform.rotation = transform.rotation;
                bonushealth.SetActive(true);
            }
            transform.position = new Vector3(transform.position.x + (platformWidthArray[platformSelector] / 2), transform.position.y, transform.position.z);
        }
    }