void OnValidate() { if (hydraulicErosion == null) { hydraulicErosion = GetComponent <HydraulicErosion>(); } }
public override void OnInspectorGUI() { terrainMapGenerator = (TerrainMapGenerator)target; heightMapGenerator = terrainMapGenerator.GetComponent <HeightMapGenerator>(); hydraulicErosion = terrainMapGenerator.GetComponent <HydraulicErosion>(); forestGenerator = terrainMapGenerator.GetComponent <ForestGenerator>(); DrawDefaultInspector(); // Buttons EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); if (GUILayout.Button("Randomize")) { Randomize(); terrainMapGenerator.Clear(); terrainMapGenerator.Generate(loadAllObjects: true); } EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); if (GUILayout.Button("Generate")) { terrainMapGenerator.Generate(loadAllObjects: true); } if (GUILayout.Button("Clear")) { terrainMapGenerator.Clear(); } GUILayout.Label("Save Level"); EditorGUILayout.BeginHorizontal(); levelNameSave = EditorGUILayout.TextField(levelNameSave); if (GUILayout.Button("Save")) { SaveTerrainData(levelNameSave); } EditorGUILayout.EndHorizontal(); string[] saveFiles = GetSaveFiles(); if (saveFiles.Length > 0) { GUILayout.Label("Load Level"); EditorGUILayout.BeginHorizontal(); levelNameIndex = EditorGUILayout.Popup(levelNameIndex, saveFiles); levelNameLoad = saveFiles[levelNameIndex]; if (GUILayout.Button("Load")) { LoadTerrainData(levelNameLoad); terrainMapGenerator.Generate(loadAllObjects: true); } EditorGUILayout.EndHorizontal(); } }
void OnValidate() { // Get components if (heightMapGenerator == null) { heightMapGenerator = GetComponent <HeightMapGenerator>(); } if (forestGenerator == null) { forestGenerator = GetComponent <ForestGenerator>(); } if (hydraulicErosion == null) { hydraulicErosion = GetComponent <HydraulicErosion>(); } // Round chunk grid width to nearest odd number >= 1 if (chunkGridWidth % 2 == 0) { chunkGridWidth = (int)Mathf.Round(chunkGridWidth / 2) * 2 + 1; } // Update component settings heightMapGenerator.averageMapDepth = averageMapDepth; heightMapGenerator.heightMapSettingsList = heightMapSettingsList; forestGenerator.settings = forestGeneratorSettings; hydraulicErosion.settings = hydraulicErosionSettings; if (hydraulicErosion.settings.useHydraulicErosion && chunkGridWidth > 1) { Debug.LogWarning("Can only use Hydraulic Erosion for single chunks"); hydraulicErosion.settings.useHydraulicErosion = false; } }
private void OnEnable() { m_heScript = (HydraulicErosion)target; }
public ErosionGenerator(LocalTerrain localTerrain) { lt = localTerrain; he = new HydraulicErosion(this); te = new ThermalErosion(this); }