#nullable enable using Cysharp.Threading.Tasks; using System; using UnityEngine; using UnityEngine.UIElements; using UVC.UIToolkit; namespace UVC.Studio.UIToolkit.Modal { /// /// 설정 모달 - Database 탭 콘텐츠 /// [UxmlElement] public partial class UTKSettingModalContentDB : VisualElement, IDisposable, IUTKTabContent { #region Constants private const string UXML_PATH = "Studio/UIToolkit/Modal/UTKSettingModalContentDBUXML"; #endregion #region Fields private bool _disposed; private UTKInputField? _dbIpField; private UTKInputField? _dbPortField; private UTKInputField? _dbIdField; private UTKInputField? _dbPasswordField; #endregion #region Properties /// Database IP public string DbIp => _dbIpField?.value ?? ""; /// Database PORT public string DbPort => _dbPortField?.value ?? ""; /// Database ID public string DbId => _dbIdField?.value ?? ""; /// Database PASSWORD public string DbPassword => _dbPasswordField?.value ?? ""; #endregion #region Constructor public UTKSettingModalContentDB() { var asset = Resources.Load(UXML_PATH); if (asset != null) { var root = asset.Instantiate(); root.style.flexGrow = 1; // UTKInputField 참조 가져오기 var inputFields = root.Query().ToList(); foreach (var field in inputFields) { switch (field.label) { case "Database IP": _dbIpField = field; break; case "Database PORT": _dbPortField = field; break; case "Database ID": _dbIdField = field; break; case "Database PASSWORD": _dbPasswordField = field; break; } } Add(root); } } #endregion #region IUTKTabContent public void Show(object? data) { } public async UniTask Hide() { } #endregion #region IDisposable public void Dispose() { if (_disposed) return; _disposed = true; } #endregion } }