123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- namespace UnityEngine.Rendering
- {
- // This file can't be in the editor assembly as we need to access it in runtime-editor-specific
- // places like OnGizmo etc and we don't want to add the editor assembly as a dependency of the
- // runtime one
- // The UI layout/styling in this panel is broken and can't match the one from built-ins
- // preference panels as everything needed is internal/private (at the time of writing this
- // comment)
- #if UNITY_EDITOR
- using UnityEditor;
- public static class CoreRenderPipelinePreferences
- {
- static bool m_Loaded = false;
- static Color s_VolumeGizmoColor = new Color(0.2f, 0.8f, 0.1f, 0.5f);
- public static Color volumeGizmoColor
- {
- get => s_VolumeGizmoColor;
- set
- {
- if (s_VolumeGizmoColor == value) return;
- s_VolumeGizmoColor = value;
- EditorPrefs.SetInt(Keys.volumeGizmoColor, (int)ColorUtils.ToHex(value));
- }
- }
- static class Keys
- {
- internal const string volumeGizmoColor = "CoreRP.Volume.GizmoColor";
- }
- [SettingsProvider]
- static SettingsProvider PreferenceGUI()
- {
- return new SettingsProvider("Preferences/Core Render Pipeline", SettingsScope.User)
- {
- guiHandler = searchContext =>
- {
- if (!m_Loaded)
- Load();
- volumeGizmoColor = EditorGUILayout.ColorField("Volume Gizmo Color", volumeGizmoColor);
- }
- };
- }
- static CoreRenderPipelinePreferences()
- {
- Load();
- }
- static void Load()
- {
- s_VolumeGizmoColor = GetColor(Keys.volumeGizmoColor, new Color(0.2f, 0.8f, 0.1f, 0.5f));
- m_Loaded = true;
- }
- static Color GetColor(string key, Color defaultValue)
- {
- int value = EditorPrefs.GetInt(key, (int)ColorUtils.ToHex(defaultValue));
- return ColorUtils.ToRGBA((uint)value);
- }
- }
- #endif
- }
|