Files
XRLib/Assets/Scripts/UVC/UIToolkit/Property/Items/UTKEnumPropertyItem.cs
2026-02-10 20:48:49 +09:00

43 lines
1.4 KiB
C#

#nullable enable
using System;
namespace UVC.UIToolkit
{
/// <summary>
/// 열거형 속성 데이터 클래스입니다.
/// UI는 UTKEnumPropertyItemView에서 담당합니다.
/// </summary>
public class UTKEnumPropertyItem : UTKPropertyItemBase<Enum>
{
#region Fields
private Type _enumType;
#endregion
#region Properties
/// <summary>속성 타입</summary>
public override UTKPropertyType PropertyType => UTKPropertyType.Enum;
/// <summary>열거형 타입</summary>
public Type EnumType => _enumType;
#endregion
#region Constructor
/// <summary>
/// 열거형 속성을 생성합니다.
/// </summary>
/// <param name="id">고유 ID</param>
/// <param name="name">표시 이름</param>
/// <param name="initialValue">초기 값 (열거형 타입 추론에 사용)</param>
/// <param name="isReadOnly">읽기 전용 여부</param>
/// <param name="showLabel">라벨 표시 여부</param>
public UTKEnumPropertyItem(string id, string name, Enum initialValue, bool isReadOnly = false, bool showLabel = true)
: base(id, name, initialValue ?? throw new ArgumentNullException(nameof(initialValue)))
{
_enumType = initialValue.GetType();
_isReadOnly = isReadOnly;
_showLabel = showLabel;
}
#endregion
}
}