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; }
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(); }