public override void OnInspectorGUI() { // List <SubScene> loadedSubScenes = self.GetAllSubScenes(); // //base.OnInspectorGUI(); EditorGUILayout.LabelField("----"); boundsSizeProperty.vector3Value = EditorGUILayout.Vector3Field("Bounds Size", boundsSizeProperty.vector3Value); EditorGUILayout.LabelField("Render Distances"); overrideRenderDistanceFarProperty.boolValue = EditorGUILayout.Toggle(" Override Far", overrideRenderDistanceFarProperty.boolValue); if (overrideRenderDistanceFarProperty.boolValue) { localRenderDistanceFarProperty.floatValue = EditorGUILayout.FloatField(" Far", localRenderDistanceFarProperty.floatValue); } overrideRenderDistanceInactiveProperty.boolValue = EditorGUILayout.Toggle(" Override Inactive", overrideRenderDistanceInactiveProperty.boolValue); if (overrideRenderDistanceInactiveProperty.boolValue) { localRenderDistanceInactiveProperty.floatValue = EditorGUILayout.FloatField(" Inactive", localRenderDistanceInactiveProperty.floatValue); } EditorGUILayout.LabelField("----"); drawBoundsProperty.boolValue = EditorGUILayout.Toggle("Draw Bounds", drawBoundsProperty.boolValue); if (!Application.isPlaying && self.transform.parent.GetComponent <World>().EditorSubScenesLoaded) { GUILayout.Label(""); foreach (var subSceneMode in self.AvailableSubSceneModes) { foreach (var subSceneType in Enum.GetValues(typeof(eSubSceneType)).Cast <eSubSceneType>()) { if (!self.GetSubSceneRoot(subSceneType, subSceneMode, loadedSubScenes) && GUILayout.Button("Create " + WorldUtility.GetSubSceneRootName(subSceneMode, subSceneType))) { UnityEngine.EventSystems.ExecuteEvents.Execute <IRegionEventHandler>(self.gameObject, null, (x, y) => x.CreateSubScene(subSceneMode, subSceneType)); } } } GUILayout.Label(""); } serializedObject.ApplyModifiedProperties(); }