private void GenerateTerrain() { bool destroyPreview = false; string terrainName = "Generated Terrain"; TerrainGeneratorPreview terrainPreview = GameObject.FindObjectOfType <TerrainGeneratorPreview>(); if (terrainPreview == null) { destroyPreview = true; Terrain_PluginManager manager = GameObject.FindObjectOfType <Terrain_PluginManager>(); Terrain_ProceduralTerrain_Profile profile = (Terrain_ProceduralTerrain_Profile)manager.Profile; profile.terrainGenerator.InstantiatePrefab(); terrainPreview = profile.terrainGenerator.Instance.GetComponent <TerrainGeneratorPreview>(); } terrainPreview.DrawMapInEditor(); TerrainData data = MeshToTerrain.CreateTerrainData(terrainName, 512, Vector3.zero, 0); GameObject terrainObject = UnityEngine.Terrain.CreateTerrainGameObject(data); terrainObject.name = terrainName; if (destroyPreview) { GameObject.DestroyImmediate(terrainPreview.gameObject); } }
public override void OnInspectorGUI() { TerrainGeneratorPreview mapPreview = (TerrainGeneratorPreview)target; if (DrawDefaultInspector()) { if (mapPreview.autoUpdate) { mapPreview.DrawMapInEditor(); } } if (GUILayout.Button("Generate")) { mapPreview.DrawMapInEditor(); } }
internal override void InstantiatePrefab() { base.InstantiatePrefab(); TerrainGeneratorPreview generator = Instance.GetComponent <TerrainGeneratorPreview>(); if (randomTerrain) { heightMapSeed = Random.Range(int.MinValue, int.MaxValue); generator.heightMapSettings.noiseSettings.seed = heightMapSeed; } else { if (heightMapSeed != 0) { generator.heightMapSettings.noiseSettings.seed = heightMapSeed; } } }