using System.Collections; using System.Collections.Generic; using UnityEngine; using BITKit; using UnityEngine.UIElements; using UnityEngine.Events; using Cysharp.Threading.Tasks; namespace BITKit.UX { public class UXTextField : UXElement, IProvider { [Header(Constant.Header.Settings)] public TranslateSO translateSO; [Header(Constant.Header.Events)] public UnityEvent onValueChanged = new(); public override void OnStart() { base.OnStart(); visualElement.RegisterValueChangedCallback(OnValueChanged); } public async void Set(string t) { if (translateSO) { t = translateSO.GetAt(t); } await UniTask.SwitchToMainThread(cancellationToken); visualElement.value = t; } string IProvider.Get() { return visualElement.value; } void OnValueChanged(ChangeEvent changeEvent) { onValueChanged.Invoke(changeEvent.newValue); } } }