using System; using RosettaUI.Builder; using UnityEngine; using UnityEngine.UIElements; namespace RosettaUI.UIToolkit { public partial class ColorPicker { private class SliderSet { // ReSharper disable once ConvertToConstant.Local private static readonly string USSClassNameTextureSlider = "rosettaui-texture-slider"; private static Vector3 Round(Vector3 value, int digit) { var scale = Mathf.Pow(10f, digit); var v = value * scale; return new Vector3( Mathf.Round(v.x), Mathf.Round(v.y), Mathf.Round(v.z) ) / scale; } private static float Round(float value, int digit) { var scale = Mathf.Pow(10f, digit); return Mathf.Round(value * scale) / scale; } #region Type Define private enum SliderType { Hsv, Rgb } #endregion private bool _isInitialized; private readonly ColorPicker _colorPicker; private readonly Button _sliderTypeButton; private readonly Slider _slider0; private readonly Slider _slider1; private readonly Slider _slider2; private readonly Slider _slider3; private Texture2D _sliderTexture0; private Texture2D _sliderTexture1; private Texture2D _sliderTexture2; private SliderType _sliderType; private Color Color { get => _colorPicker.Color; set => _colorPicker.Color = value; } private float Alpha { get => _colorPicker.Alpha; set => _colorPicker.Alpha = value; } private Vector3 Hsv { get => _colorPicker.Hsv; set => _colorPicker.Hsv = value; } public bool DisplayAlpha { get => _slider3.resolvedStyle.display != DisplayStyle.None; set => _slider3.style.display = value ? DisplayStyle.Flex : DisplayStyle.None; } public SliderSet(ColorPicker colorPicker) { _colorPicker = colorPicker; _sliderTypeButton = colorPicker.Q