using UnityEngine; using UnityEditor; namespace VertexColor.ScenePartition.Editor { [CustomEditor(typeof(ScenePartitionSO))] public class ScenePartitionSOEditor : UnityEditor.Editor { public override void OnInspectorGUI() { ScenePartitionSO scenePartitionSO = (target as ScenePartitionSO); serializedObject.Update(); //EditorGUILayout.PropertyField(sceneAssetProperty); serializedObject.ApplyModifiedProperties(); EditorGUILayout.Space(); if(scenePartitionSO.sceneAsset == null) { if (GUILayout.Button("Create Scene")) { scenePartitionSO.CreateScene(); } } else { if (GUILayout.Button("Load All")) { scenePartitionSO.LoadAll(); } if (scenePartitionSO.hasLoadedPartitions) { if (GUILayout.Button("Save All")) { scenePartitionSO.SaveAll(); } } if (GUILayout.Button("Unload")) { scenePartitionSO.Unload(); } if (GUILayout.Button("Open Scene Data Folder")) { EditorUtility.RevealInFinder(ScenePartitionUtils.GetDataPath(scenePartitionSO)); } } EditorGUILayout.Space(); using (new EditorGUI.DisabledGroupScope(true)) { DrawDefaultInspector(); } } } }