// 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); } }
// 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)); } }
// 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); } }