private void OnGUI() { EditorGUILayout.BeginHorizontal(); EditorGUI.BeginDisabledGroup(true); EditorGUILayout.TextField(_mapFilePath); EditorGUI.EndDisabledGroup(); if (GUILayout.Button("...")) { var filePath = EditorUtility.OpenFilePanel("Select OpenMap File", Application.dataPath, "txt"); if (filePath.Length > 0) { _mapFilePath = filePath; } _validFile = _mapFilePath.Length > 0; } EditorGUILayout.EndHorizontal(); _roadMaterial = EditorGUILayout.ObjectField("Road Material", _roadMaterial, typeof(Material), false) as Material; _buildingMaterial = EditorGUILayout.ObjectField("Building Material", _buildingMaterial, typeof(Material), false) as Material; EditorGUI.BeginDisabledGroup(!_validFile || _disableUI || _importing); if (GUILayout.Button("Import Map File")) { _importing = true; var mapWraper = new ImportMapWrapper(this, _mapFilePath, _roadMaterial, _buildingMaterial); mapWraper.Import(); EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); _importing = false; } EditorGUI.EndDisabledGroup(); if (_disableUI) { EditorGUILayout.HelpBox("The current scene has not been saved yet!", MessageType.Warning, true); } }
// Creates the GUI private void OnGUI() { EditorGUILayout.BeginHorizontal(); EditorGUI.BeginDisabledGroup(true); EditorGUILayout.TextField(mapFilePath); EditorGUI.EndDisabledGroup(); if (GUILayout.Button("...")) { var filePath = EditorUtility.OpenFilePanel("Select OpenMap File", Application.dataPath, "xml"); if (filePath.Length > 0) { mapFilePath = filePath; } validFile = mapFilePath.Length > 0; } EditorGUILayout.EndHorizontal(); // Fields for the import options roadMaterial = EditorGUILayout.ObjectField("Road Material", roadMaterial, typeof(Material), false) as Material; footwayMaterial = EditorGUILayout.ObjectField("Footway Material", footwayMaterial, typeof(Material), false) as Material; buildingMaterial = EditorGUILayout.ObjectField("Building Material", buildingMaterial, typeof(Material), false) as Material; waterMaterial = EditorGUILayout.ObjectField("Waterway Material", waterMaterial, typeof(Material), false) as Material; roofMaterial = EditorGUILayout.ObjectField("Roof Material", roofMaterial, typeof(Material), false) as Material; greenMaterial = EditorGUILayout.ObjectField("Green area Material", greenMaterial, typeof(Material), false) as Material; rooftopHeight = EditorGUILayout.FloatField("Rooftop Height", rooftopHeight); riverWitdh = EditorGUILayout.FloatField("River Width", riverWitdh); streamWidth = EditorGUILayout.FloatField("Stream Width", streamWidth); EditorGUI.BeginDisabledGroup(!validFile || disableUI); if (GUILayout.Button("Import Map File")) { var mapWrapper = new ImportMapWrapper(this, mapFilePath, roadMaterial, footwayMaterial, buildingMaterial, waterMaterial, roofMaterial, greenMaterial, rooftopHeight, riverWitdh, streamWidth); mapWrapper.Import(); } EditorGUI.EndDisabledGroup(); if (disableUI) { EditorGUILayout.HelpBox(" The current scene has not been saved yet!", MessageType.Warning, true); } }