示例#1
0
            internal void OnTierGUI(BuildTargetGroup platform, GraphicsTier tier, bool vertical)
            {
                TierSettings ts = EditorGraphicsSettings.GetTierSettings(platform, tier);

                EditorGUI.BeginChangeCheck();


                if (!vertical)
                {
                    EditorGUILayout.LabelField(Styles.empty, EditorStyles.boldLabel);
                }

                bool usingSRP = GraphicsSettings.renderPipelineAsset != null;

                if (!usingSRP)
                {
                    ts.standardShaderQuality        = ShaderQualityPopup(ts.standardShaderQuality);
                    ts.reflectionProbeBoxProjection = EditorGUILayout.Toggle(ts.reflectionProbeBoxProjection);
                    ts.reflectionProbeBlending      = EditorGUILayout.Toggle(ts.reflectionProbeBlending);
                    ts.detailNormalMap        = EditorGUILayout.Toggle(ts.detailNormalMap);
                    ts.semitransparentShadows = EditorGUILayout.Toggle(ts.semitransparentShadows);
                }

                if (SupportedRenderingFeatures.active.rendererSupportsLightProbeProxyVolumes)
                {
                    ts.enableLPPV = EditorGUILayout.Toggle(ts.enableLPPV);
                }

                if (!vertical)
                {
                    EditorGUILayout.LabelField(Styles.empty, EditorStyles.boldLabel);
                    EditorGUILayout.LabelField(Styles.empty, EditorStyles.boldLabel);
                }

                if (!usingSRP)
                {
                    ts.cascadedShadowMaps    = EditorGUILayout.Toggle(ts.cascadedShadowMaps);
                    ts.prefer32BitShadowMaps = EditorGUILayout.Toggle(ts.prefer32BitShadowMaps);
                    ts.hdr = EditorGUILayout.Toggle(ts.hdr);
                }

                ts.hdrMode = HDRModePopup(ts.hdrMode);

                if (!usingSRP)
                {
                    ts.renderingPath = RenderingPathPopup(ts.renderingPath);
                }

                if (SupportedRenderingFeatures.IsLightmapBakeTypeSupported(LightmapBakeType.Realtime))
                {
                    ts.realtimeGICPUUsage = RealtimeGICPUUsagePopup(ts.realtimeGICPUUsage);
                }

                if (EditorGUI.EndChangeCheck())
                {
                    // TODO: it should be doable in c# now as we "expose" GraphicsSettings anyway
                    EditorGraphicsSettings.RegisterUndo();
                    EditorGraphicsSettings.SetTierSettings(platform, tier, ts);
                }
            }
            internal void OnGuiVertical(BuildPlatform platform)
            {
                EditorGUILayout.BeginVertical();
                foreach (GraphicsTier tier in Enum.GetValues(typeof(GraphicsTier)))
                {
                    bool autoSettings = EditorGraphicsSettings.AreTierSettingsAutomatic(platform.namedBuildTarget.ToBuildTargetGroup(), tier);
                    EditorGUI.BeginChangeCheck();
                    {
                        GUILayout.BeginHorizontal();
                        EditorGUIUtility.labelWidth = 80;
                        EditorGUILayout.LabelField(Styles.tierName[(int)tier], EditorStyles.boldLabel);
                        GUILayout.FlexibleSpace();
                        EditorGUIUtility.labelWidth = 80;
                        autoSettings = EditorGUILayout.Toggle(Styles.autoSettings, autoSettings);
                        GUILayout.EndHorizontal();
                    }

                    if (EditorGUI.EndChangeCheck())
                    {
                        EditorGraphicsSettings.RegisterUndo();
                        EditorGraphicsSettings.MakeTierSettingsAutomatic(platform.namedBuildTarget.ToBuildTargetGroup(), tier, autoSettings);
                        EditorGraphicsSettings.OnUpdateTierSettings(platform.namedBuildTarget.ToBuildTargetGroup(), true);
                    }

                    using (new EditorGUI.DisabledScope(autoSettings))
                    {
                        EditorGUI.indentLevel++;
                        EditorGUILayout.BeginHorizontal();

                        EditorGUILayout.BeginVertical();
                        EditorGUIUtility.labelWidth = 140;
                        OnFieldLabelsGUI(true);
                        EditorGUILayout.EndVertical();

                        EditorGUILayout.BeginVertical();
                        EditorGUIUtility.labelWidth = 50;
                        OnTierGUI(platform, tier, true);
                        EditorGUILayout.EndVertical();

                        GUILayout.EndHorizontal();
                        EditorGUI.indentLevel--;
                    }
                }
                GUILayout.EndVertical();
                EditorGUIUtility.labelWidth = 0;
            }
示例#3
0
            internal void OnGuiHorizontal(BuildTargetGroup platform)
            {
                EditorGUILayout.BeginHorizontal();

                EditorGUILayout.BeginVertical();
                EditorGUIUtility.labelWidth = 140;
                EditorGUILayout.LabelField(Styles.empty, EditorStyles.boldLabel);
                OnFieldLabelsGUI(false);
                EditorGUILayout.LabelField(Styles.empty, EditorStyles.boldLabel);
                EditorGUILayout.LabelField(Styles.autoSettings, EditorStyles.boldLabel);
                EditorGUILayout.EndVertical();

                EditorGUIUtility.labelWidth = 50;
                foreach (GraphicsTier tier in Enum.GetValues(typeof(GraphicsTier)))
                {
                    bool autoSettings = EditorGraphicsSettings.AreTierSettingsAutomatic(platform, tier);

                    EditorGUILayout.BeginVertical();
                    EditorGUILayout.LabelField(Styles.tierName[(int)tier], EditorStyles.boldLabel);
                    using (new EditorGUI.DisabledScope(autoSettings))
                        OnTierGUI(platform, tier, false);

                    EditorGUILayout.LabelField(Styles.empty, EditorStyles.boldLabel);
                    EditorGUI.BeginChangeCheck();
                    autoSettings = EditorGUILayout.Toggle(autoSettings);
                    if (EditorGUI.EndChangeCheck())
                    {
                        EditorGraphicsSettings.RegisterUndo();
                        EditorGraphicsSettings.MakeTierSettingsAutomatic(platform, tier, autoSettings);
                        EditorGraphicsSettings.OnUpdateTierSettings(platform, true);
                    }
                    EditorGUILayout.EndVertical();
                }
                EditorGUIUtility.labelWidth = 0;

                EditorGUILayout.EndHorizontal();
            }