2 using UnityEngine
.Rendering
.PostProcessing
;
4 namespace UnityEditor
.Rendering
.PostProcessing
6 static class GlobalSettings
10 internal const string trackballSensitivity
= "PostProcessing.Trackball.Sensitivity";
11 internal const string volumeGizmoColor
= "PostProcessing.Volume.GizmoColor";
12 internal const string currentChannelMixer
= "PostProcessing.ChannelMixer.CurrentChannel";
13 internal const string currentCurve
= "PostProcessing.Curve.Current";
16 static bool m_Loaded
= false;
18 static float m_TrackballSensitivity
= 0.2f
;
19 internal static float trackballSensitivity
21 get { return m_TrackballSensitivity; }
22 set { TrySave(ref m_TrackballSensitivity, value, Keys.trackballSensitivity); }
25 static Color m_VolumeGizmoColor
= new Color(0.2f
, 0.8f
, 0.1f
, 0.5f
);
26 internal static Color volumeGizmoColor
28 get { return m_VolumeGizmoColor; }
29 set { TrySave(ref m_VolumeGizmoColor, value, Keys.volumeGizmoColor); }
32 static int m_CurrentChannelMixer
= 0;
33 internal static int currentChannelMixer
35 get { return m_CurrentChannelMixer; }
36 set { TrySave(ref m_CurrentChannelMixer, value, Keys.currentChannelMixer); }
39 static int m_CurrentCurve
= 0;
40 internal static int currentCurve
42 get { return m_CurrentCurve; }
43 set { TrySave(ref m_CurrentCurve, value, Keys.currentCurve); }
46 static GlobalSettings()
51 #if UNITY_2018_3_OR_NEWER
53 static SettingsProvider
PreferenceGUI()
55 return new SettingsProvider("Preferences/Post-processing", SettingsScope
.User
)
57 guiHandler
= searchContext
=> OpenGUI()
61 [PreferenceItem("Post-processing")]
62 static void PreferenceGUI()
73 EditorGUILayout
.Space();
75 trackballSensitivity
= EditorGUILayout
.Slider("Trackballs Sensitivity", trackballSensitivity
, 0.05f
, 1f
);
76 volumeGizmoColor
= EditorGUILayout
.ColorField("Volume Gizmo Color", volumeGizmoColor
);
81 m_TrackballSensitivity
= EditorPrefs
.GetFloat(Keys
.trackballSensitivity
, 0.2f
);
82 m_VolumeGizmoColor
= GetColor(Keys
.volumeGizmoColor
, new Color(0.2f
, 0.8f
, 0.1f
, 0.5f
));
83 m_CurrentChannelMixer
= EditorPrefs
.GetInt(Keys
.currentChannelMixer
, 0);
84 m_CurrentCurve
= EditorPrefs
.GetInt(Keys
.currentCurve
, 0);
89 static Color
GetColor(string key
, Color defaultValue
)
91 int value = EditorPrefs
.GetInt(key
, (int)ColorUtilities
.ToHex(defaultValue
));
92 return ColorUtilities
.ToRGBA((uint)value);
95 static void TrySave
<T
>(ref T field
, T newValue
, string key
)
97 if (field
.Equals(newValue
))
100 if (typeof(T
) == typeof(float))
101 EditorPrefs
.SetFloat(key
, (float)(object)newValue
);
102 else if (typeof(T
) == typeof(int))
103 EditorPrefs
.SetInt(key
, (int)(object)newValue
);
104 else if (typeof(T
) == typeof(bool))
105 EditorPrefs
.SetBool(key
, (bool)(object)newValue
);
106 else if (typeof(T
) == typeof(string))
107 EditorPrefs
.SetString(key
, (string)(object)newValue
);
108 else if (typeof(T
) == typeof(Color
))
109 EditorPrefs
.SetInt(key
, (int)ColorUtilities
.ToHex((Color
)(object)newValue
));