UIToolkit Sample uxml로 전환

This commit is contained in:
logonkhi
2026-01-20 20:18:47 +09:00
parent ee86f93814
commit fd8f8c6de0
202 changed files with 3614 additions and 1440 deletions

View File

@@ -84,7 +84,7 @@ namespace UVC.UIToolkit
}
/// <summary>플레이스홀더 텍스트</summary>
[UxmlAttribute]
[UxmlAttribute("placeholder")]
public string Placeholder
{
get => textEdition.placeholder;
@@ -92,7 +92,7 @@ namespace UVC.UIToolkit
}
/// <summary>에러 메시지</summary>
[UxmlAttribute]
[UxmlAttribute("error-message")]
public string ErrorMessage
{
get => _errorMessage;
@@ -104,7 +104,7 @@ namespace UVC.UIToolkit
}
/// <summary>활성화 상태</summary>
[UxmlAttribute]
[UxmlAttribute("is-enabled")]
public bool IsEnabled
{
get => _isEnabled;
@@ -139,7 +139,7 @@ namespace UVC.UIToolkit
}
/// <summary>스타일 변형</summary>
[UxmlAttribute]
[UxmlAttribute("variant")]
public InputFieldVariant Variant
{
get => _variant;
@@ -176,10 +176,9 @@ namespace UVC.UIToolkit
SubscribeToThemeChanges();
// UXML에서 로드될 때 속성이 설정된 후 UI 갱신
RegisterCallback<AttachToPanelEvent>(_ =>
{
UpdateVariant();
});
// Unity 6의 소스 생성기는 Deserialize에서 필드에 직접 값을 할당하므로
// AttachToPanelEvent를 사용하여 패널에 연결된 후 UI를 갱신
RegisterCallback<AttachToPanelEvent>(OnAttachToPanel);
}
public UTKInputField(string label, string placeholder = "") : this()
@@ -237,6 +236,17 @@ namespace UVC.UIToolkit
#endregion
#region Event Handlers
private void OnAttachToPanel(AttachToPanelEvent evt)
{
// UXML 속성이 설정된 후 한 번만 UI 갱신
UnregisterCallback<AttachToPanelEvent>(OnAttachToPanel);
UpdateVariant();
// IsEnabled 상태 적용
SetEnabled(_isEnabled);
EnableInClassList("utk-input--disabled", !_isEnabled);
}
private void OnTextValueChanged(ChangeEvent<string> evt)
{
OnValueChanged?.Invoke(evt.newValue);