private void DoColorSpaceGUI() { GUILayout.BeginHorizontal(new GUILayoutOption[0]); this.m_ShowColors = GUILayout.Toggle(this.m_ShowColors, ColorPicker.styles.colorToggle, EditorStyles.foldout, new GUILayoutOption[0]); GUI.enabled = this.m_ShowColors; if (GUILayout.Button(ColorPicker.styles.colorCycle, GUIStyle.none, new GUILayoutOption[] { GUILayout.ExpandWidth(false) })) { this.m_OldColorBoxMode = (this.m_ColorBoxMode = (this.m_ColorBoxMode + 1) % ColorPicker.ColorBoxMode.EyeDropper); } GUI.enabled = true; GUILayout.EndHorizontal(); if (this.m_ShowColors) { bool changed = GUI.changed; GUILayout.BeginHorizontal(new GUILayoutOption[] { GUILayout.ExpandHeight(false) }); Rect aspectRect = GUILayoutUtility.GetAspectRect(1f, ColorPicker.styles.pickerBox, new GUILayoutOption[] { GUILayout.MinWidth(64f), GUILayout.MinHeight(64f), GUILayout.MaxWidth(256f), GUILayout.MaxHeight(256f) }); EditorGUILayout.Space(); Rect rect = GUILayoutUtility.GetRect(8f, 32f, 64f, 128f, ColorPicker.styles.pickerBox); rect.height = aspectRect.height; GUILayout.EndHorizontal(); GUI.changed = false; switch (this.m_ColorBoxMode) { case ColorPicker.ColorBoxMode.SV_H: this.Slider3D(aspectRect, rect, ref this.m_S, ref this.m_V, ref this.m_H, ColorPicker.styles.pickerBox, ColorPicker.styles.thumb2D, ColorPicker.styles.thumbVert); if (GUI.changed) { this.HSVToRGB(); } break; case ColorPicker.ColorBoxMode.HV_S: this.Slider3D(aspectRect, rect, ref this.m_H, ref this.m_V, ref this.m_S, ColorPicker.styles.pickerBox, ColorPicker.styles.thumb2D, ColorPicker.styles.thumbVert); if (GUI.changed) { this.HSVToRGB(); } break; case ColorPicker.ColorBoxMode.HS_V: this.Slider3D(aspectRect, rect, ref this.m_H, ref this.m_S, ref this.m_V, ColorPicker.styles.pickerBox, ColorPicker.styles.thumb2D, ColorPicker.styles.thumbVert); if (GUI.changed) { this.HSVToRGB(); } break; case ColorPicker.ColorBoxMode.BG_R: this.Slider3D(aspectRect, rect, ref this.m_B, ref this.m_G, ref this.m_R, ColorPicker.styles.pickerBox, ColorPicker.styles.thumb2D, ColorPicker.styles.thumbVert); if (GUI.changed) { this.RGBToHSV(); } break; case ColorPicker.ColorBoxMode.BR_G: this.Slider3D(aspectRect, rect, ref this.m_B, ref this.m_R, ref this.m_G, ColorPicker.styles.pickerBox, ColorPicker.styles.thumb2D, ColorPicker.styles.thumbVert); if (GUI.changed) { this.RGBToHSV(); } break; case ColorPicker.ColorBoxMode.RG_B: this.Slider3D(aspectRect, rect, ref this.m_R, ref this.m_G, ref this.m_B, ColorPicker.styles.pickerBox, ColorPicker.styles.thumb2D, ColorPicker.styles.thumbVert); if (GUI.changed) { this.RGBToHSV(); } break; case ColorPicker.ColorBoxMode.EyeDropper: EyeDropper.DrawPreview(Rect.MinMaxRect(aspectRect.x, aspectRect.y, rect.xMax, aspectRect.yMax)); break; } GUI.changed |= changed; } }