From cf3198b0b705d7f6b6e118625245d03fdad8ad3c Mon Sep 17 00:00:00 2001 From: max Date: Tue, 4 Jul 2023 23:34:54 +0200 Subject: [PATCH] Updated ScenePartitionEditorWindow - Added clear button here instead of in ScenePartitionSOEditor - Added editor util for horizontal line - Exposed scene grid cell size value --- Editor/EditorGUIUtils.cs | 20 ++++++++++++++++++++ Editor/EditorGUIUtils.cs.meta | 11 +++++++++++ Editor/ScenePartitionEditorWindow.cs | 16 ++++++++++++++-- Editor/ScenePartitionSOEditor.cs | 8 ++------ Runtime/SceneGrid.cs | 4 ++-- 5 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 Editor/EditorGUIUtils.cs create mode 100644 Editor/EditorGUIUtils.cs.meta diff --git a/Editor/EditorGUIUtils.cs b/Editor/EditorGUIUtils.cs new file mode 100644 index 0000000..ea8734b --- /dev/null +++ b/Editor/EditorGUIUtils.cs @@ -0,0 +1,20 @@ +using UnityEditor; +using UnityEngine; + +namespace VertexColor.ScenePartition.Editor +{ + public static class EditorGUIUtils + { + public static readonly Color horizontalLineColor = Color.white; + + public static void HorizontalLine(Color color) + { + Color prev = GUI.color; + GUI.color = color; + EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); + GUI.color = prev; + } + + public static void HorizontalLine() => HorizontalLine(horizontalLineColor); + } +} \ No newline at end of file diff --git a/Editor/EditorGUIUtils.cs.meta b/Editor/EditorGUIUtils.cs.meta new file mode 100644 index 0000000..093d846 --- /dev/null +++ b/Editor/EditorGUIUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: befa2e31a4a6ae04696dcd5b72554ea4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/ScenePartitionEditorWindow.cs b/Editor/ScenePartitionEditorWindow.cs index 4f28860..96f3685 100644 --- a/Editor/ScenePartitionEditorWindow.cs +++ b/Editor/ScenePartitionEditorWindow.cs @@ -19,11 +19,23 @@ public static void ShowExample() private void OnGUI() { - if (GUILayout.Button("Save")) + EditorGUILayout.LabelField("Cache", EditorStyles.boldLabel); + + using (new EditorGUILayout.HorizontalScope()) { - ScenePartitionSS.Save(); + if (GUILayout.Button("Save", EditorStyles.miniButtonLeft)) + { + ScenePartitionSS.Save(); + } + + if (GUILayout.Button("Clear", EditorStyles.miniButtonRight)) + { + ScenePartitionSS.Save(); + } } + EditorGUIUtils.HorizontalLine(); + DrawSceneDataCache(); } diff --git a/Editor/ScenePartitionSOEditor.cs b/Editor/ScenePartitionSOEditor.cs index 8b369e0..da15203 100644 --- a/Editor/ScenePartitionSOEditor.cs +++ b/Editor/ScenePartitionSOEditor.cs @@ -83,6 +83,8 @@ public override void OnInspectorGUI() { EditorGUILayout.LabelField($"generatedSceneGrid"); + scenePartitionSO.Data.SceneGrid.cellSize = EditorGUILayout.IntSlider("cellSize", scenePartitionSO.Data.SceneGrid.cellSize, 10, 1000); + foreach (KeyValuePair item in scenePartitionSO.Data.SceneGrid.Grid) { EditorGUILayout.LongField("gridId", item.Key); @@ -97,12 +99,6 @@ public override void OnInspectorGUI() EditorGUI.indentLevel--; } } - - if (GUILayout.Button("ClearCache")) - { - scenePartitionSO.ClearCache(); - ScenePartitionSS.instance.SceneDataCache.Clear(); - } } } } diff --git a/Runtime/SceneGrid.cs b/Runtime/SceneGrid.cs index 9393646..d035475 100644 --- a/Runtime/SceneGrid.cs +++ b/Runtime/SceneGrid.cs @@ -6,7 +6,7 @@ namespace VertexColor.ScenePartition public class SceneGrid { [SerializeField] - private int cellSize = 10; + public int cellSize = 10; [SerializeField] private SceneGridDictionary grid = new SceneGridDictionary(); @@ -81,4 +81,4 @@ public static (ulong, ulong) ULongToULongPair(ulong value) return (x, y); } } -} +} \ No newline at end of file