private void DrawDensityFunctionChooser() { EditorGUILayout.LabelField(new GUIContent("Density Function Settings: "), EditorStyles.boldLabel); EditorGUIExtensions.Space(2); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(new GUIContent("Density Function Apply Mode: ")); densityFuncApplyMode = (DensityFuncApplyMode)EditorGUILayout.EnumPopup(densityFuncApplyMode); EditorGUILayout.EndHorizontal(); if (densityFuncApplyMode == DensityFuncApplyMode.OneForAll) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField($"Function: "); string buttonString = densityFunctionType != null?densityFunctionType.ToString() : "Chose"; if (GUILayout.Button(buttonString, EditorStyles.popup)) { Rect r = EditorGUILayout.GetControlRect(); r.position = Event.current.mousePosition; DrawDensityFuncChooser(r); } EditorGUILayout.EndHorizontal(); } if (GUILayout.Button("Create New Denisty Function")) { EditorWindow window = GetWindow <FunctionGraphEditor>(typeof(TerrainChunkWindow)); window.Show(); } }
public void Initialize() { chunkResolution = settings.MinChunkResolution; densityFuncApplyMode = DensityFuncApplyMode.OneForAll; show = true; if (Chunk.DefaultExtents.sqrMagnitude <= 0) { Chunk.DefaultExtents = Vector3.one * 10f; } chunksToManage = new ChunksToManage(); chunksToManage.Chunks = new List <ChunkToGenerate>(); chunksToManage.AddChunk(Vector3.zero); TagHelper.AddTag("TerrainRoot"); FindOrCreateSurfaceGenerator(); //select workspacce if (!hasWorkspace) { if (settings.Workspace == "") { SelectWorkspace(); } else { relativeWorkspace = settings.Workspace; } } if (!hasPathToBlender) { if (settings.PathToBlender != "") { pathToBlender = settings.PathToBlender; } } }