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