using System.Collections.Generic; using UnityEditor; using UnityEngine; namespace VertexColor.ScenePartition.Editor { public class ScenePartitionEditorWindow : EditorWindow { private Vector2 scrollPos = Vector2.zero; [MenuItem("Max/ScenePartitionWindow")] public static void ShowExample() { ScenePartitionEditorWindow window = GetWindow(); window.titleContent = new GUIContent($"{nameof(ScenePartitionEditorWindow)}"); } private void OnGUI() { DrawSceneDataCache(); } private void DrawSceneDataCache() { using (EditorGUILayout.ScrollViewScope scope = new EditorGUILayout.ScrollViewScope(scrollPos)) { scrollPos = scope.scrollPosition; using (new EditorGUI.DisabledGroupScope(true)) { ScenePartitionSS scenePartitionSS = ScenePartitionSS.instance; foreach (KeyValuePair sceneData in scenePartitionSS.SceneDataCache) { EditorGUILayout.LabelField($"{sceneData.Key.name}"); if (sceneData.Value.HasCreatedPartitions) { EditorGUILayout.LabelField($"scenePartitions"); foreach (KeyValuePair scenePartition in sceneData.Value.ScenePartitions) { EditorGUILayout.IntField((int)scenePartition.Value.id); } } EditorGUILayout.Space(); if (sceneData.Value.HasLoadedPartitions) { EditorGUILayout.LabelField($"loadedScenePartitions"); foreach (KeyValuePair scenePartition in sceneData.Value.LoadedScenePartitions) { EditorGUILayout.IntField((int)scenePartition.Value.id); } } } } } } } }