Files
XRLib/Assets/Scripts/UVC/UIToolkit/Property/Items/UTKFloatPropertyItem.cs

78 lines
2.6 KiB
C#

#nullable enable
namespace UVC.UIToolkit
{
/// <summary>
/// 실수 속성 데이터 클래스입니다.
/// UI는 UTKFloatPropertyItemView에서 담당합니다.
/// </summary>
public class UTKFloatPropertyItem : UTKPropertyItemBase<float>
{
#region Fields
private bool _useSlider;
private float _minValue;
private float _maxValue = 1f;
#endregion
#region Properties
/// <summary>속성 타입</summary>
public override UTKPropertyType PropertyType => UTKPropertyType.Float;
/// <summary>슬라이더 사용 여부</summary>
public bool UseSlider
{
get => _useSlider;
set => _useSlider = value;
}
/// <summary>최소값 (슬라이더 모드)</summary>
public float MinValue
{
get => _minValue;
set => _minValue = value;
}
/// <summary>최대값 (슬라이더 모드)</summary>
public float MaxValue
{
get => _maxValue;
set => _maxValue = value;
}
#endregion
#region Constructor
/// <summary>
/// 실수 속성을 생성합니다 (필드 모드).
/// </summary>
/// <param name="id">고유 ID</param>
/// <param name="name">표시 이름</param>
/// <param name="initialValue">초기 값</param>
/// <param name="isReadOnly">읽기 전용 여부</param>
public UTKFloatPropertyItem(string id, string name, float initialValue = 0f, bool isReadOnly = false)
: base(id, name, initialValue)
{
IsReadOnly = isReadOnly;
}
/// <summary>
/// 실수 속성을 생성합니다 (슬라이더 모드).
/// </summary>
/// <param name="id">고유 ID</param>
/// <param name="name">표시 이름</param>
/// <param name="initialValue">초기 값</param>
/// <param name="minValue">최소값</param>
/// <param name="maxValue">최대값</param>
/// <param name="useSlider">슬라이더 사용 여부</param>
/// <param name="isReadOnly">읽기 전용 여부</param>
public UTKFloatPropertyItem(string id, string name, float initialValue, float minValue = float.MinValue, float maxValue = float.MaxValue, bool useSlider = true, bool isReadOnly = false)
: base(id, name, initialValue)
{
_minValue = minValue;
_maxValue = maxValue;
_useSlider = useSlider;
IsReadOnly = isReadOnly;
}
#endregion
}
}