#nullable enable using System.Collections.Generic; using UnityEngine; using UnityEngine.UIElements; using UVC.UIToolkit; using UVC.UI.Commands; using UVC.Log; namespace UVC.Sample.UIToolkit { /// /// UTKSettingModalSample 독립 실행 샘플 코드입니다. /// public class UTKSettingModalSample : MonoBehaviour { [SerializeField] private UIDocument? _uiDocument; [SerializeField] [Tooltip("시작 시 적용할 테마")] private UTKTheme initialTheme = UTKTheme.Dark; private UTKToggle? _themeToggle; private VisualElement? _root; private void Start() { // UIDocument 참조 확인 var doc = GetComponent(); if (doc == null) { Debug.LogError("UIDocument가 할당되지 않았습니다."); return; } _uiDocument = doc; _root = _uiDocument.rootVisualElement; UTKThemeManager.Instance.RegisterRoot(_root); UTKThemeManager.Instance.SetTheme(initialTheme); // 테마 토글 _themeToggle = _root.Q("toggle"); if (_themeToggle != null) { _themeToggle.OnValueChanged += (isOn) => { UTKThemeManager.Instance.SetTheme(!isOn ? UTKTheme.Dark : UTKTheme.Light); }; } } private void OnDestroy() { ULog.Debug("UTKSettingModalSample 정리 완료"); } } }