#nullable enable using Cysharp.Threading.Tasks; using System; using UnityEngine; using UnityEngine.UIElements; using UVC.UIToolkit; namespace UVC.Studio.UIToolkit.Modal { /// /// 설정 모달 - General 탭 콘텐츠 /// [UxmlElement] public partial class UTKSettingModalContentGeneral : VisualElement, IDisposable, IUTKTabContent { #region Constants private const string UXML_PATH = "Studio/UIToolkit/Modal/UTKSettingModalContentGeneralUXML"; #endregion #region Fields private bool _disposed; private UTKIntegerField? _autoSaveTimeField; private UTKFloatField? _gridSpacingField; private UTKFloatField? _positionSnapField; private UTKFloatField? _rotationSnapField; private UTKFloatField? _scaleSnapField; #endregion #region Properties /// Auto Save Time 값 (분) public int AutoSaveTime => _autoSaveTimeField?.value ?? 5; /// Grid Spacing 값 public float GridSpacing => _gridSpacingField?.value ?? 1f; /// Position Snap 값 public float PositionSnap => _positionSnapField?.value ?? 0.5f; /// Rotation Snap 값 public float RotationSnap => _rotationSnapField?.value ?? 10f; /// Scale Snap 값 public float ScaleSnap => _scaleSnapField?.value ?? 0.5f; #endregion #region Constructor public UTKSettingModalContentGeneral() { var asset = Resources.Load(UXML_PATH); if (asset != null) { var root = asset.Instantiate(); root.style.flexGrow = 1; // UTKIntegerField 참조 가져오기 var intFields = root.Query().ToList(); foreach (var field in intFields) { switch (field.label) { case "Auto Save Time": _autoSaveTimeField = field; break; } } // UTKFloatField 참조 가져오기 var floatFields = root.Query().ToList(); foreach (var field in floatFields) { switch (field.label) { case "Grid Spacing": _gridSpacingField = field; break; case "Position Snap": _positionSnapField = field; break; case "Rotation Snap": _rotationSnapField = field; break; case "Scale Snap": _scaleSnapField = field; break; } } Add(root); } } #endregion #region Public Methods public void Show(object? data) { } public async UniTask Hide() { } #endregion #region IDisposable public void Dispose() { if (_disposed) return; _disposed = true; } #endregion } }