UTKProperyWindow 개발 중
This commit is contained in:
@@ -308,6 +308,12 @@ namespace UVC.UIToolkit
|
||||
#endregion
|
||||
|
||||
#region Public Methods
|
||||
|
||||
/// <summary>
|
||||
/// 현재 색상을 설정합니다.
|
||||
/// </summary>
|
||||
/// <param name="color"></param>
|
||||
/// <param name="setAsOriginal"></param>
|
||||
public void SetColor(Color color, bool setAsOriginal = true)
|
||||
{
|
||||
_currentColor = color;
|
||||
@@ -321,8 +327,15 @@ namespace UVC.UIToolkit
|
||||
UpdateAllUI();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 현재 선택된 색상을 반환합니다.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public Color GetColor() => _currentColor;
|
||||
|
||||
/// <summary>
|
||||
/// 피커를 닫고, 정리합니다.
|
||||
/// </summary>
|
||||
public void Close()
|
||||
{
|
||||
OnClosed?.Invoke();
|
||||
@@ -331,6 +344,9 @@ namespace UVC.UIToolkit
|
||||
Dispose();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 선택을 취소하고 원래 색상으로 복원합니다.
|
||||
/// </summary>
|
||||
public void Cancel()
|
||||
{
|
||||
_currentColor = _originalColor;
|
||||
@@ -338,6 +354,9 @@ namespace UVC.UIToolkit
|
||||
Close();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 현재 색상을 확정하고 선택 이벤트를 발생시킵니다.
|
||||
/// </summary>
|
||||
public void Confirm()
|
||||
{
|
||||
OnColorSelected?.Invoke(_currentColor);
|
||||
@@ -535,19 +554,19 @@ namespace UVC.UIToolkit
|
||||
_hueBar?.RegisterCallback<PointerUpEvent>(OnHueBarPointerUp);
|
||||
|
||||
// RGB Sliders
|
||||
_sliderR?.RegisterValueChangedCallback(evt => OnRGBSliderChanged('R', evt.newValue));
|
||||
_sliderG?.RegisterValueChangedCallback(evt => OnRGBSliderChanged('G', evt.newValue));
|
||||
_sliderB?.RegisterValueChangedCallback(evt => OnRGBSliderChanged('B', evt.newValue));
|
||||
_sliderA?.RegisterValueChangedCallback(evt => OnRGBSliderChanged('A', evt.newValue));
|
||||
_sliderR?.RegisterCallback<ChangeEvent<float>>(OnSliderRChanged);
|
||||
_sliderG?.RegisterCallback<ChangeEvent<float>>(OnSliderGChanged);
|
||||
_sliderB?.RegisterCallback<ChangeEvent<float>>(OnSliderBChanged);
|
||||
_sliderA?.RegisterCallback<ChangeEvent<float>>(OnSliderAChanged);
|
||||
|
||||
// RGB Fields
|
||||
_fieldR?.RegisterValueChangedCallback(evt => OnRGBFieldChanged('R', evt.newValue));
|
||||
_fieldG?.RegisterValueChangedCallback(evt => OnRGBFieldChanged('G', evt.newValue));
|
||||
_fieldB?.RegisterValueChangedCallback(evt => OnRGBFieldChanged('B', evt.newValue));
|
||||
_fieldA?.RegisterValueChangedCallback(evt => OnRGBFieldChanged('A', evt.newValue));
|
||||
_fieldR?.RegisterCallback<ChangeEvent<int>>(OnFieldRChanged);
|
||||
_fieldG?.RegisterCallback<ChangeEvent<int>>(OnFieldGChanged);
|
||||
_fieldB?.RegisterCallback<ChangeEvent<int>>(OnFieldBChanged);
|
||||
_fieldA?.RegisterCallback<ChangeEvent<int>>(OnFieldAChanged);
|
||||
|
||||
// Hex Field
|
||||
_hexField?.RegisterValueChangedCallback(OnHexFieldChanged);
|
||||
_hexField?.RegisterCallback<ChangeEvent<string>>(OnHexFieldChanged);
|
||||
|
||||
// Original preview click - 원래 색상으로 복원
|
||||
_previewOriginal?.RegisterCallback<ClickEvent>(_ => SetColor(_originalColor));
|
||||
@@ -685,6 +704,16 @@ namespace UVC.UIToolkit
|
||||
NotifyColorChanged();
|
||||
}
|
||||
|
||||
private void OnSliderRChanged(ChangeEvent<float> evt) => OnRGBSliderChanged('R', evt.newValue);
|
||||
private void OnSliderGChanged(ChangeEvent<float> evt) => OnRGBSliderChanged('G', evt.newValue);
|
||||
private void OnSliderBChanged(ChangeEvent<float> evt) => OnRGBSliderChanged('B', evt.newValue);
|
||||
private void OnSliderAChanged(ChangeEvent<float> evt) => OnRGBSliderChanged('A', evt.newValue);
|
||||
|
||||
private void OnFieldRChanged(ChangeEvent<int> evt) => OnRGBFieldChanged('R', evt.newValue);
|
||||
private void OnFieldGChanged(ChangeEvent<int> evt) => OnRGBFieldChanged('G', evt.newValue);
|
||||
private void OnFieldBChanged(ChangeEvent<int> evt) => OnRGBFieldChanged('B', evt.newValue);
|
||||
private void OnFieldAChanged(ChangeEvent<int> evt) => OnRGBFieldChanged('A', evt.newValue);
|
||||
|
||||
private void OnRGBSliderChanged(char channel, float value)
|
||||
{
|
||||
if (_isUpdating) return;
|
||||
@@ -1148,6 +1177,19 @@ namespace UVC.UIToolkit
|
||||
_sliderATexture = null;
|
||||
}
|
||||
|
||||
// 이벤트 콜백 해제
|
||||
_sliderR?.UnregisterCallback<ChangeEvent<float>>(OnSliderRChanged);
|
||||
_sliderG?.UnregisterCallback<ChangeEvent<float>>(OnSliderGChanged);
|
||||
_sliderB?.UnregisterCallback<ChangeEvent<float>>(OnSliderBChanged);
|
||||
_sliderA?.UnregisterCallback<ChangeEvent<float>>(OnSliderAChanged);
|
||||
|
||||
_fieldR?.UnregisterCallback<ChangeEvent<int>>(OnFieldRChanged);
|
||||
_fieldG?.UnregisterCallback<ChangeEvent<int>>(OnFieldGChanged);
|
||||
_fieldB?.UnregisterCallback<ChangeEvent<int>>(OnFieldBChanged);
|
||||
_fieldA?.UnregisterCallback<ChangeEvent<int>>(OnFieldAChanged);
|
||||
|
||||
_hexField?.UnregisterCallback<ChangeEvent<string>>(OnHexFieldChanged);
|
||||
|
||||
OnColorChanged = null;
|
||||
OnColorSelected = null;
|
||||
OnClosed = null;
|
||||
|
||||
@@ -533,6 +533,9 @@ namespace UVC.UIToolkit
|
||||
s_dayNameKeys = DEFAULT_DAY_NAME_KEYS;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 피커를 닫고, 정리합니다.
|
||||
/// </summary>
|
||||
public void Close()
|
||||
{
|
||||
OnClosed?.Invoke();
|
||||
|
||||
@@ -83,6 +83,7 @@ namespace UVC.UIToolkit
|
||||
{
|
||||
FadeOut(() =>
|
||||
{
|
||||
style.display = DisplayStyle.None;
|
||||
RemoveFromHierarchy();
|
||||
Dispose();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user