Example #1
0
        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();
        }