void Awake() { numberOfCavesPerWorldChunk = Random.Range(3, 16); caveVoidPoints = new Vector3[numberOfCavesPerWorldChunk, maxCaveLength]; for (int i = 0; i < numberOfCavesPerWorldChunk; i++) { generateCave(i); } generateLandscape = this.gameObject.GetComponent <GenerateLandscape> (); generateLandscape.generateCaves(caveVoidPoints, radius); }
// Use this for initialization void Start() { //player = transform; generateLandscape = gameManager.GetComponent <GenerateLandscape>(); worldBlocks = GenerateLandscape.worldBlocks; }
private void Start() { s = this; terrainWidth = terrainBound.transform.position.x; if (displayTrees) { for (int i = 0; i < numTrees; i++) { float xPos = Random.Range(0, terrainWidth); float zPos = Random.Range(0, terrainWidth); Vector3 treePos = new Vector3(xPos, 0, zPos); float treeHeight = terrain.SampleHeight(treePos); treePos.y = treeHeight - 1; GameObject newTree = Instantiate(tree); newTree.transform.Rotate(0, Random.Range(0, 360), 0); newTree.transform.position = treePos; } } if (displayFlowers) { for (int i = 0; i < numFlowers; i++) { float xPos = Random.Range(200, 300); float zPos = Random.Range(70, 220); Vector3 flowerPos = new Vector3(xPos, 0, zPos); float flowerHeight = terrain.SampleHeight(flowerPos); flowerPos.y = flowerHeight; GameObject newTree = Instantiate(flowers[Random.Range(0, flowers.Count)]); newTree.transform.position = flowerPos; } } if (displayGrass) { for (int i = 0; i < numGrass; i++) { float xPos = Random.Range(200, 400); float zPos = Random.Range(70, 220); Vector3 grassPos = new Vector3(xPos, 0, zPos); float grassHeight = terrain.SampleHeight(grassPos); grassPos.y = grassHeight; GameObject newGrass = Instantiate(grass); newGrass.transform.localScale = new Vector3(10, 8, 10); newGrass.transform.Rotate(0, Random.Range(0, 360), 0); newGrass.transform.position = grassPos; int clusterNum = Random.Range(0, 10); // Maybe make this recursive for (int j = 0; j < clusterNum; j++) { float xOffset = Random.Range(-2f, 2f); float zOffset = Random.Range(-2f, 2f); GameObject newGrass1 = Instantiate(grass); //newGrass.transform.eulerAngles = new Vector3(0, Random.Range(0, 180), 90); newGrass1.transform.Rotate(0, Random.Range(0, 360), 0); newGrass1.transform.localScale = new Vector3(8, 7, 8); Vector3 newGrassPos = new Vector3(grassPos.x + xOffset, grassPos.y, grassPos.z + zOffset); newGrassPos.y = terrain.SampleHeight(newGrassPos); newGrass1.transform.position = newGrassPos; numGrass--; } } } if (displayStones) { for (int i = 0; i < numStones; i++) { float xPos = Random.Range(200, 400); float zPos = Random.Range(70, 220); Vector3 stonePos = new Vector3(xPos, 0, zPos); float stoneHeight = terrain.SampleHeight(stonePos); stonePos.y = stoneHeight - 0.1f; GameObject newStone = Instantiate(stone); newStone.transform.position = stonePos; } } }