5[RequireComponent(typeof(RawImage))]
18 private RawImage image;
20 private RectTransform rectTransform => transform as RectTransform;
24 image = GetComponent<RawImage>();
26 if (Application.isPlaying)
30 private void OnEnable()
32 if (
picker !=
null && Application.isPlaying)
39 private void OnDisable()
48 private void OnDestroy()
50 if (image.texture !=
null)
51 DestroyImmediate(image.texture);
54 private void ColorChanged(
Color newColor)
72 private void HSVChanged(
float hue,
float saturation,
float value)
90 private void RegenerateTexture()
101 var vertical =
direction == Slider.Direction.BottomToTop ||
direction == Slider.Direction.TopToBottom;
102 var inverted =
direction == Slider.Direction.TopToBottom ||
direction == Slider.Direction.RightToLeft;
121 throw new NotImplementedException(
"");
125 texture =
new Texture2D(1, size);
127 texture =
new Texture2D(size, 1);
129 texture.hideFlags = HideFlags.DontSave;
130 colors =
new Color32[size];
135 for (
byte i = 0; i < size; i++)
136 colors[inverted ? size - 1 - i : i] =
new Color32(i, baseColor.g, baseColor.b, 255);
139 for (
byte i = 0; i < size; i++)
140 colors[inverted ? size - 1 - i : i] =
new Color32(baseColor.r, i, baseColor.b, 255);
143 for (
byte i = 0; i < size; i++)
144 colors[inverted ? size - 1 - i : i] =
new Color32(baseColor.r, baseColor.g, i, 255);
147 for (
byte i = 0; i < size; i++) colors[inverted ? size - 1 - i : i] =
new Color32(i, i, i, 255);
150 for (var i = 0; i < size; i++)
151 colors[inverted ? size - 1 - i : i] = HSVUtil.ConvertHsvToRgb(i, 1, 1, 1);
154 for (var i = 0; i < size; i++)
155 colors[inverted ? size - 1 - i : i] = HSVUtil.ConvertHsvToRgb(h * 360, (
float) i / size, v, 1);
158 for (var i = 0; i < size; i++)
159 colors[inverted ? size - 1 - i : i] = HSVUtil.ConvertHsvToRgb(h * 360, s, (
float) i / size, 1);
162 throw new NotImplementedException(
"");
165 texture.SetPixels32(colors);
168 if (image.texture !=
null)
169 DestroyImmediate(image.texture);
170 image.texture = texture;
174 case Slider.Direction.BottomToTop:
175 case Slider.Direction.TopToBottom:
176 image.uvRect =
new Rect(0, 0, 2, 1);
178 case Slider.Direction.LeftToRight:
179 case Slider.Direction.RightToLeft:
180 image.uvRect =
new Rect(0, 0, 1, 2);
ColorChangedEvent onValueChanged
HSVChangedEvent onHSVChanged
Slider.Direction direction
ColorValues type
Which value this slider can edit.