Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
ColorPicker.cs
Go to the documentation of this file.
1using System;
2using UnityEngine;
3using UnityEngine.UI;
4
6
7public class ColorPicker : MonoBehaviour
8{
9 private enum ColorUpdateMode
10 {
11 MANUAL,
12 RGBA,
13 HSVA,
14 HSV,
15 MARKER
16 }
17
18 internal static bool slidersHsvMode;
19
20 [Header("Components")]
21 [SerializeField]
23
24 [SerializeField]
26
27 [SerializeField]
29
30 [SerializeField]
32
33 [SerializeField]
35
36 [SerializeField]
38
39 [SerializeField]
41
42 [SerializeField]
44
45 [SerializeField]
47
48 [SerializeField]
50
51 [SerializeField]
53
54 [Header("Settings")]
56
57 [SerializeField]
58 private bool useAlpha = true;
59
60 [NonSerialized]
61 public int[] colors = new int[10];
62
64
66 {
67 get
68 {
69 return selectedColor.RGBA;
70 }
71 set
72 {
73 SelectColor(value);
74 }
75 }
76
77 public float Alpha
78 {
79 get
80 {
81 if (!useAlpha)
82 {
83 return 1f;
84 }
85 return alphaSlider.Value;
86 }
87 }
88
89 public float Hue => hueSlider.value;
90
92
93 public float ValueHSV => blueValSlider.Value;
94
95 public event Action<Color> ColorUpdated = delegate
96 {
97 };
98
99 public void Init()
100 {
101 redHueSlider.ColorValueChanged += OnColorSliderValueChanged;
102 blueValSlider.ColorValueChanged += OnColorSliderValueChanged;
103 greenSatSlider.ColorValueChanged += OnColorSliderValueChanged;
104 alphaSlider.ColorValueChanged += OnColorSliderValueChanged;
105 hueSlider.Init();
106 hueSlider.HueValueChanged += OnHueSliderValueChanged;
107 palette.ColorPicked += OnColorPickedFromPalette;
108 hexInput.ColorSelected += OnHexColorSelected;
109 if (dropperButton != null)
110 {
111 dropperButton.onClick.AddListener(StartDropper);
112 }
113 slidersModeButton.onClick.AddListener(OnSlidersModeButton);
114 alphaSlider.gameObject.SetActive(useAlpha);
115 }
116
117 private void OnColorSliderValueChanged(float value)
118 {
120 }
121
122 private void OnHueSliderValueChanged(float value)
123 {
125 }
126
127 public void OnColorPickedFromPalette(Vector2 positionOnPalette)
128 {
129 selectedColor.Select(new HSVColor(hueSlider.value, positionOnPalette.x, positionOnPalette.y, Alpha));
131 }
132
133 private void OnHexColorSelected(Color color)
134 {
135 SelectColor(color);
136 }
137
138 private void UpdateColorPicker(ColorUpdateMode mode, bool sendEvent = true)
139 {
140 UpdateColor(mode);
144 if (sendEvent)
145 {
146 this.ColorUpdated(selectedColor.RGBA);
147 }
148 }
149
150 private void UpdateColor(ColorUpdateMode mode)
151 {
152 switch (mode)
153 {
154 case ColorUpdateMode.HSV:
156 break;
157 case ColorUpdateMode.HSVA:
159 break;
160 case ColorUpdateMode.RGBA:
162 break;
163 }
164 }
165
167 {
168 if (mode != ColorUpdateMode.HSV)
169 {
170 hueSlider.value = selectedColor.HSV.h;
171 }
172 if (mode != ColorUpdateMode.RGBA && mode != ColorUpdateMode.HSVA)
173 {
174 if (slidersHsvMode)
175 {
176 redHueSlider.Value = selectedColor.HSV.h / 359f;
177 greenSatSlider.Value = selectedColor.HSV.s;
178 blueValSlider.Value = selectedColor.HSV.v;
179 }
180 else
181 {
182 redHueSlider.Value = selectedColor.RGBA.r;
183 greenSatSlider.Value = selectedColor.RGBA.g;
184 blueValSlider.Value = selectedColor.RGBA.b;
185 }
186 if (useAlpha)
187 {
188 alphaSlider.Value = selectedColor.RGBA.a;
189 }
190 }
191 }
192
193 private void StartDropper()
194 {
197 }
198
199 private void OnColorPicked(Color color)
200 {
201 SelectColor(color);
202 }
203
204 private void OnDropperCanceled()
205 {
207 }
208
209 private void OnSlidersModeButton()
210 {
215 UpdateColorPicker(ColorUpdateMode.MANUAL, sendEvent: false);
216 }
217
218 public void SelectColor(Color newColor)
219 {
220 selectedColor.Select(newColor);
222 }
223
224 public bool IsAlphaBeingUsed()
225 {
226 return useAlpha;
227 }
228}
void SelectColor(HSVColor hsv)
Definition: ColorPalette.cs:51
void UpdateColor(ColorUpdateMode mode)
Definition: ColorPicker.cs:150
LabeledColorSlider blueValSlider
Definition: ColorPicker.cs:37
void OnColorPickedFromPalette(Vector2 positionOnPalette)
Definition: ColorPicker.cs:127
LabeledColorSlider redHueSlider
Definition: ColorPicker.cs:31
SelectedColorController selectedColor
Definition: ColorPicker.cs:22
void OnColorSliderValueChanged(float value)
Definition: ColorPicker.cs:117
void UpdateSlidersValues(ColorUpdateMode mode)
Definition: ColorPicker.cs:166
LabeledColorSlider alphaSlider
Definition: ColorPicker.cs:40
LabeledColorSlider greenSatSlider
Definition: ColorPicker.cs:34
void OnHexColorSelected(Color color)
Definition: ColorPicker.cs:133
void SelectColor(Color newColor)
Definition: ColorPicker.cs:218
void OnColorPicked(Color color)
Definition: ColorPicker.cs:199
void UpdateColorPicker(ColorUpdateMode mode, bool sendEvent=true)
Definition: ColorPicker.cs:138
void OnHueSliderValueChanged(float value)
Definition: ColorPicker.cs:122
void PickColors(Action< Color > onColorPicked, Action onDropCanceled)
Definition: Dropper.cs:102
void SelectColor(Color color)
Definition: HexInput.cs:104
float h
Definition: HSVColor.cs:3
float s
Definition: HSVColor.cs:5
float v
Definition: HSVColor.cs:7