UnityEditor.OcclusionCullingWindow.DisplayControls C# (CSharp) Method

DisplayControls() private method

private DisplayControls ( Object target, SceneView sceneView ) : void
target Object
sceneView SceneView
return void
        private void DisplayControls(Object target, SceneView sceneView)
        {
            if ((sceneView != null) && s_IsVisible)
            {
                bool flag2 = this.ShowModePopup(GUILayoutUtility.GetRect(170f, EditorGUIUtility.singleLineHeight));
                if (Event.current.type == EventType.Layout)
                {
                    this.m_Warning = "";
                    if (!flag2)
                    {
                        if (StaticOcclusionCullingVisualization.previewOcclucionCamera == null)
                        {
                            this.m_Warning = "No camera selected for occlusion preview.";
                        }
                        else if (!StaticOcclusionCullingVisualization.isPreviewOcclusionCullingCameraInPVS)
                        {
                            this.m_Warning = "Camera is not inside an Occlusion View Area.";
                        }
                    }
                }
                int num = 12;
                if (!string.IsNullOrEmpty(this.m_Warning))
                {
                    Rect position = GUILayoutUtility.GetRect(100f, (float) (num + 0x13));
                    position.x += EditorGUI.indent;
                    position.width -= EditorGUI.indent;
                    GUI.Label(position, this.m_Warning, EditorStyles.helpBox);
                }
                else
                {
                    Rect rect = GUILayoutUtility.GetRect(200f, (float) num);
                    rect.x += EditorGUI.indent;
                    rect.width -= EditorGUI.indent;
                    Rect rect3 = new Rect(rect.x, rect.y, rect.width, rect.height);
                    if (flag2)
                    {
                        EditorGUI.DrawLegend(rect3, Color.white, "View Volumes", StaticOcclusionCullingVisualization.showViewVolumes);
                    }
                    else
                    {
                        EditorGUI.DrawLegend(rect3, Color.white, "Camera Volumes", StaticOcclusionCullingVisualization.showViewVolumes);
                    }
                    bool flag = GUI.Toggle(rect3, StaticOcclusionCullingVisualization.showViewVolumes, "", GUIStyle.none);
                    if (flag != StaticOcclusionCullingVisualization.showViewVolumes)
                    {
                        StaticOcclusionCullingVisualization.showViewVolumes = flag;
                        SceneView.RepaintAll();
                    }
                    if (!flag2)
                    {
                        rect = GUILayoutUtility.GetRect(100f, (float) num);
                        rect.x += EditorGUI.indent;
                        rect.width -= EditorGUI.indent;
                        rect3 = new Rect(rect.x, rect.y, rect.width, rect.height);
                        EditorGUI.DrawLegend(rect3, Color.green, "Visibility Lines", StaticOcclusionCullingVisualization.showVisibilityLines);
                        flag = GUI.Toggle(rect3, StaticOcclusionCullingVisualization.showVisibilityLines, "", GUIStyle.none);
                        if (flag != StaticOcclusionCullingVisualization.showVisibilityLines)
                        {
                            StaticOcclusionCullingVisualization.showVisibilityLines = flag;
                            SceneView.RepaintAll();
                        }
                        rect = GUILayoutUtility.GetRect(100f, (float) num);
                        rect.x += EditorGUI.indent;
                        rect.width -= EditorGUI.indent;
                        rect3 = new Rect(rect.x, rect.y, rect.width, rect.height);
                        EditorGUI.DrawLegend(rect3, Color.grey, "Portals", StaticOcclusionCullingVisualization.showPortals);
                        flag = GUI.Toggle(rect3, StaticOcclusionCullingVisualization.showPortals, "", GUIStyle.none);
                        if (flag != StaticOcclusionCullingVisualization.showPortals)
                        {
                            StaticOcclusionCullingVisualization.showPortals = flag;
                            SceneView.RepaintAll();
                        }
                    }
                    if (!flag2)
                    {
                        flag = GUILayout.Toggle(StaticOcclusionCullingVisualization.showGeometryCulling, "Occlusion culling", new GUILayoutOption[0]);
                        if (flag != StaticOcclusionCullingVisualization.showGeometryCulling)
                        {
                            StaticOcclusionCullingVisualization.showGeometryCulling = flag;
                            SceneView.RepaintAll();
                        }
                    }
                }
            }
        }

Usage Example

            public override void OnGUI()
            {
                if (m_Window == null)
                {
                    var wins = Resources.FindObjectsOfTypeAll(typeof(OcclusionCullingWindow)) as OcclusionCullingWindow[];
                    m_Window = wins.Length > 0 ? wins[0] : null;
                }

                if (m_Window != null)
                {
                    m_Window.DisplayControls();
                }
            }