Beispiel #1
0
    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);
        }
    }
Beispiel #2
0
    // 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);
        }
    }