Tanoda
HSVPicker/UI/ColorSlider.cs
Go to the documentation of this file.
1using UnityEngine;
2using UnityEngine.UI;
3
7[RequireComponent(typeof(Slider))]
8public class ColorSlider : MonoBehaviour
9{
11
16
17 private Slider slider;
18
19 private bool listen = true;
20
21 private void Awake()
22 {
23 slider = GetComponent<Slider>();
24
25 hsvpicker.onValueChanged.AddListener(ColorChanged);
26 hsvpicker.onHSVChanged.AddListener(HSVChanged);
27 slider.onValueChanged.AddListener(SliderChanged);
28 }
29
30 private void OnDestroy()
31 {
32 hsvpicker.onValueChanged.RemoveListener(ColorChanged);
33 hsvpicker.onHSVChanged.RemoveListener(HSVChanged);
34 slider.onValueChanged.RemoveListener(SliderChanged);
35 }
36
37 private void ColorChanged(Color newColor)
38 {
39 listen = false;
40 switch (type)
41 {
42 case ColorValues.R:
43 slider.normalizedValue = newColor.r;
44 break;
45 case ColorValues.G:
46 slider.normalizedValue = newColor.g;
47 break;
48 case ColorValues.B:
49 slider.normalizedValue = newColor.b;
50 break;
51 case ColorValues.A:
52 slider.normalizedValue = newColor.a;
53 break;
54 default:
55 break;
56 }
57 }
58
59 private void HSVChanged(float hue, float saturation, float value)
60 {
61 listen = false;
62 switch (type)
63 {
64 case ColorValues.Hue:
65 slider.normalizedValue = hue; //1 - hue;
66 break;
67 case ColorValues.Saturation:
68 slider.normalizedValue = saturation;
69 break;
70 case ColorValues.Value:
71 slider.normalizedValue = value;
72 break;
73 default:
74 break;
75 }
76 }
77
78 private void SliderChanged(float newValue)
79 {
80 if (listen)
81 {
82 newValue = slider.normalizedValue;
83 //if (type == ColorValues.Hue)
84 // newValue = 1 - newValue;
85
86 hsvpicker.AssignColor(type, newValue);
87 }
88
89 listen = true;
90 }
91}
UnityEngine.Color Color
Definition: TestScript.cs:32
ColorChangedEvent onValueChanged
Definition: ColorPicker.cs:19
HSVChangedEvent onHSVChanged
Definition: ColorPicker.cs:20
void AssignColor(ColorValues type, float value)
Definition: ColorPicker.cs:190
Displays one of the color values of aColorPicker
ColorValues type
Which value this slider can edit.