void ShowImportHeightmapGUI() { // Heightmap Mode EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(Styles.HeightmapMode); ToggleHightmapMode(); EditorGUILayout.EndHorizontal(); // Heightmap selector if (m_Settings.HeightmapMode == Heightmap.Mode.Global) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(Styles.SelectGlobalHeightmap); EditorGUILayout.BeginHorizontal(EditorStyles.helpBox); EditorGUILayout.LabelField(m_Settings.GlobalHeightmapPath); EditorGUI.BeginChangeCheck(); if (GUILayout.Button("...", GUILayout.Width(25.0f))) { m_Settings.GlobalHeightmapPath = EditorUtility.OpenFilePanelWithFilters("Select raw image file...", "Assets", new string[] { "Raw Image File", "raw" }); } if (EditorGUI.EndChangeCheck()) { UpdateHeightmapInformation(m_Settings.GlobalHeightmapPath); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndHorizontal(); } else if (m_Settings.HeightmapMode == Heightmap.Mode.Tiles) { int fileIndex = 0; int numFiles = m_Settings.TilesX * m_Settings.TilesZ; for (int i = 0; i < numFiles; i++) { m_Settings.TileHeightmapPaths.Add(string.Empty); } for (int x = 0; x < m_Settings.TilesZ; x++) { for (int y = 0; y < m_Settings.TilesX; y++) { EditorGUILayout.BeginHorizontal(); string tileIndex = "X-" + x + " | " + "Y-" + y; EditorGUILayout.LabelField(tileIndex); EditorGUILayout.BeginHorizontal(EditorStyles.helpBox); EditorGUILayout.LabelField(m_Settings.TileHeightmapPaths[fileIndex]); EditorGUI.BeginChangeCheck(); if (GUILayout.Button("...", GUILayout.Width(25.0f))) { m_Settings.TileHeightmapPaths[fileIndex] = EditorUtility.OpenFilePanelWithFilters("Select raw image file...", "Assets", new string[] { "Raw Image File", "raw" }); } if (EditorGUI.EndChangeCheck()) { UpdateHeightmapInformation(m_Settings.TileHeightmapPaths[fileIndex]); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndHorizontal(); fileIndex++; } } } else if (m_Settings.HeightmapMode == Heightmap.Mode.Batch) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(Styles.SelectBatchHeightmapFolder); EditorGUILayout.BeginHorizontal(EditorStyles.helpBox); EditorGUILayout.LabelField(m_Settings.BatchHeightmapFolder); EditorGUI.BeginChangeCheck(); if (GUILayout.Button("...", GUILayout.Width(25.0f))) { m_Settings.BatchHeightmapFolder = EditorUtility.OpenFolderPanel("Select heightmaps folder...", "", ""); } if (EditorGUI.EndChangeCheck() && Directory.Exists(m_Settings.BatchHeightmapFolder)) { List <string> heightFiles = Directory.GetFiles(m_Settings.BatchHeightmapFolder, "*.raw").ToList(); m_Settings.TileHeightmapPaths = SortBatchHeightmapFiles(heightFiles); UpdateHeightmapInformation(m_Settings.TileHeightmapPaths[0]); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndHorizontal(); } // Heightmap settings string infoMsg = "Heightmap(s) must use a single channel and be either 8 or 16 bit in RAW format. Resolution must be a power of two. \n"; string sizeMsg = string.Format("Resolution: {0} x {1} \n", m_Settings.HeightmapWidth, m_Settings.HeightmapHeight); string tileMsg = string.Format("Number of Tiles: {0} x {1} \n", m_Settings.TilesX, m_Settings.TilesZ); string depthMsg = string.Format("Bit depth: {0}", ToolboxHelper.GetBitDepth(m_Settings.HeightmapDepth)); string msg = infoMsg + sizeMsg + tileMsg + depthMsg; EditorGUILayout.HelpBox(msg, MessageType.Info); m_Settings.HeightmapResolution = EditorGUILayout.IntPopup("Tile Height Resolution", m_Settings.HeightmapResolution, HeightmapSizeNames, HeightmapSize); EditorGUILayout.BeginHorizontal(); EditorGUILayout.MinMaxSlider(Styles.HeightmapRemap, ref m_Settings.HeightmapRemapMin, ref m_Settings.HeightmapRemapMax, 0f, (float)m_Settings.TerrainHeight); EditorGUILayout.LabelField(Styles.HeightmapRemapMin, GUILayout.Width(40.0f)); m_Settings.HeightmapRemapMin = EditorGUILayout.FloatField(m_Settings.HeightmapRemapMin, GUILayout.Width(75.0f)); EditorGUILayout.LabelField(Styles.HeightmapRemapMax, GUILayout.Width(40.0f)); m_Settings.HeightmapRemapMax = EditorGUILayout.FloatField(m_Settings.HeightmapRemapMax, GUILayout.Width(75.0f)); EditorGUILayout.EndHorizontal(); m_Settings.FlipMode = (Heightmap.Flip)EditorGUILayout.EnumPopup(Styles.FlipAxis, m_Settings.FlipMode); }