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);
        }