public void moveUp(float speed) { Vector3 pos = camera.transform.position; pos.z += speed * Time.deltaTime; camera.transform.position = pos; if (pos.z > threshold) { for (int i = 0; i < GenerationFunctions.startwerte.Length; i++) { GenerationFunctions.startwerte[i].y += (sizey - 1) * scale * Mathf.Pow(i + 1, coarse); } MeshGenerator newMeshGenerator = Instantiate(meshgen); print("MESH GENERATOR INSTANCIATED"); float localScale = meshgen.transform.localScale.z; Vector3 newPosition = genPos; newPosition.z += (sizey - 2) * localScale; newMeshGenerator.transform.position = newPosition; foreach (DecorationFunctions deco in newMeshGenerator.GetComponents <DecorationFunctions>()) { deco.inistializePlants(); } generations.GeneratePerlinNoise(newMeshGenerator); print("PERLINNOISE GENERATED"); meshGenerators.Add(newMeshGenerator); threshold += (sizey - 2) * localScale; genPos.z += (sizey - 2) * localScale; bool wasserAn = GameObject.FindGameObjectWithTag("watertoggle").GetComponent <UnityEngine.UI.Toggle>().isOn; if (wasserAn) { WaterFunctions newWaterGenerator = Instantiate(water); newWaterGenerator.transform.position = newPosition; waterGenerators.Add(newWaterGenerator); } sectionCount++; if (sectionCount == 4) { //print("count: "+sectionCount); print(meshGenerators.Count); print("CALL DESTROY ALL PLANTS"); meshGenerators[0].destroyAllPlants(); Destroy(meshGenerators[0].gameObject); meshGenerators.RemoveAt(0); if (wasserAn) { Destroy(waterGenerators[0].gameObject); waterGenerators.RemoveAt(0); } sectionCount--; } } }