void ShowPresetGUI()
 {
     TerrainToolboxUtilities.DrawSeperatorLine();
     //--EditorGUI.indentLevel;
     EditorGUILayout.BeginHorizontal();
     EditorGUILayout.LabelField(Styles.Preset, EditorStyles.boldLabel);
     EditorGUI.BeginChangeCheck();
     m_SelectedPreset = (TerrainVisualizationSettings)EditorGUILayout.ObjectField(m_SelectedPreset, typeof(TerrainVisualizationSettings), false);
     if (EditorGUI.EndChangeCheck() && m_SelectedPreset != null)
     {
         if (EditorUtility.DisplayDialog("Confirm", "Load terrain creation settings from selected preset?", "OK", "Cancel"))
         {
             LoadVisualizationSettings();
         }
     }
     if (GUILayout.Button(Styles.SavePreset))
     {
         UpdateVisualizationSettings();
         AssetDatabase.SaveAssets();
     }
     if (GUILayout.Button(Styles.SaveAsPreset))
     {
         CreateNewPreset();
     }
     if (GUILayout.Button(Styles.RefreshPreset))
     {
         LoadVisualizationSettings();
     }
     EditorGUILayout.EndHorizontal();
 }
        void UpdateVisualizationSettings()
        {
            if (!GetVisualizationSettingsPreset())
            {
                return;
            }

            m_SelectedPreset = m_Settings;
        }
 void TransferSettings(TerrainVisualizationSettings fromSettings, TerrainVisualizationSettings toSettings)
 {
     fromSettings.ColorSelection.CopyTo(toSettings.ColorSelection, 0);
     fromSettings.DistanceSelection.CopyTo(toSettings.DistanceSelection, 0);
     toSettings.CurrentMeasure = fromSettings.CurrentMeasure;
     toSettings.HeatLevels     = fromSettings.HeatLevels;
     toSettings.SeaLevel       = fromSettings.SeaLevel;
     toSettings.MaxDistance    = fromSettings.MaxDistance;
     toSettings.MinDistance    = fromSettings.MinDistance;
     toSettings.ReferenceSpace = fromSettings.ReferenceSpace;
     toSettings.WorldSpace     = fromSettings.WorldSpace;
 }
Example #4
0
 void TransferSettings(TerrainVisualizationSettings fromSettings, TerrainVisualizationSettings toSettings)
 {
     toSettings.ColorSelection.Clear();
     toSettings.DistanceSelection.Clear();
     toSettings.ColorSelection.AddRange(fromSettings.ColorSelection.ToArray());
     toSettings.DistanceSelection.AddRange(fromSettings.DistanceSelection.ToArray());
     toSettings.CurrentMeasure = fromSettings.CurrentMeasure;
     toSettings.HeatLevels     = fromSettings.HeatLevels;
     toSettings.SeaLevel       = fromSettings.SeaLevel;
     toSettings.MaxDistance    = fromSettings.MaxDistance;
     toSettings.MinDistance    = fromSettings.MinDistance;
     toSettings.ReferenceSpace = fromSettings.ReferenceSpace;
     toSettings.WorldSpace     = fromSettings.WorldSpace;
 }
Example #5
0
        void CreateNewPreset()
        {
            string filePath = EditorUtility.SaveFilePanelInProject("Create Terrain Visualization Settings", "New Terrain Visualization.asset", "asset", "");

            if (string.IsNullOrEmpty(filePath))
            {
                return;
            }

            m_SelectedPreset = ScriptableObject.CreateInstance <TerrainVisualizationSettings>();
            TransferSettings(m_Settings, m_SelectedPreset);
            AssetDatabase.CreateAsset(m_SelectedPreset, filePath);
            AssetDatabase.SaveAssets();
            AssetDatabase.Refresh();
            ToggleVisualization();
        }
        public void LoadSettings()
        {
            string filePath = ToolboxHelper.GetPrefFilePath(ToolboxHelper.ToolboxPrefsVisualization);

            if (File.Exists(filePath))
            {
                string settingsData = File.ReadAllText(filePath);
                JsonUtility.FromJsonOverwrite(settingsData, m_Settings);
            }

            if (m_PresetPath == string.Empty)
            {
                m_SelectedPreset = null;
            }
            else
            {
                m_SelectedPreset = AssetDatabase.LoadAssetAtPath(m_PresetPath, typeof(TerrainVisualizationSettings)) as TerrainVisualizationSettings;
            }
            EditorSceneManager.sceneSaving         += OnSceneSaving;
            EditorSceneManager.sceneSaved          += OnSceneSaved;
            EditorSceneManager.sceneOpened         += OnSceneOpened;
            EditorApplication.playModeStateChanged += PlayModeChanged;
        }