UTKProperyWIndow 수정 중

This commit is contained in:
logonkhi
2026-02-02 19:33:27 +09:00
parent f2d0f3d423
commit 297ca29082
118 changed files with 3043 additions and 1924 deletions

View File

@@ -25,12 +25,19 @@ public class UTKAccordionListWindowSample : MonoBehaviour
[Tooltip("UI를 표시할 UIDocument 컴포넌트")]
public UIDocument? uiDocument;
[SerializeField]
[Tooltip("드래그 시 고스트 이미지 표시 여부")]
private bool showDragGhost = true;
[SerializeField]
[Tooltip("시작 시 적용할 테마")]
private UTKTheme initialTheme = UTKTheme.Dark;
private UTKToggle _themeToggle;
/// <summary>UTKAccordionListWindow 인스턴스</summary>
private UTKAccordionListWindow? _accordionWindow;
private UTKAccordionListWindow _accordionWindow;
/// <summary>드롭 위치 (스크린 좌표)</summary>
private Vector2 _lastDropScreenPosition;
@@ -44,6 +51,8 @@ public class UTKAccordionListWindowSample : MonoBehaviour
/// <summary>드래그 중 리스트 영역 밖에 있는지 여부</summary>
private bool _isOutsideListArea;
#endregion
#region Unity
@@ -51,30 +60,49 @@ public class UTKAccordionListWindowSample : MonoBehaviour
private void Start()
{
// UIDocument 참조 확인
uiDocument ??= GetComponent<UIDocument>();
if (uiDocument == null)
var doc = GetComponent<UIDocument>();
if (doc == null)
{
Debug.LogError("[UTKAccordionListWindowSample] UIDocument가 할당되지 않았습니다.");
Debug.LogError("UIDocument가 할당되지 않았습니다.");
return;
}
uiDocument = doc;
var toggle = uiDocument.rootVisualElement.Q<UTKToggle>("toggle");
if (toggle == null)
{
Debug.LogError("UXML에서 UTKToggle을 찾을 수 없습니다.");
return;
}
_themeToggle = toggle;
var window = uiDocument.rootVisualElement.Q<UTKAccordionListWindow>("window");
if (window == null)
{
Debug.LogError("UXML에서 UTKAccordionListWindow를 찾을 수 없습니다.");
return;
}
_accordionWindow = window;
UTKThemeManager.Instance.RegisterRoot(uiDocument.rootVisualElement);
UTKThemeManager.Instance.SetTheme(initialTheme);
_themeToggle.OnValueChanged += (isOn) =>
{
UTKThemeManager.Instance.SetTheme(!isOn ? UTKTheme.Dark : UTKTheme.Light);
};
// UTKAccordionListWindow 인스턴스 생성 및 추가
_accordionWindow = new UTKAccordionListWindow();
_accordionWindow.ShowDragGhost = showDragGhost;
_accordionWindow.Title = "ACCORDION";
_accordionWindow.ShowCloseButton = true;
uiDocument.rootVisualElement.Add(_accordionWindow);
// 테스트 데이터 생성
CreateTestData();
// 이벤트 핸들러 등록
RegisterEventHandlers();
// 윈도우 표시
_accordionWindow.Show();
Debug.Log("[UTKAccordionListWindowSample] 초기화 완료");
}