using System.Collections; using System.Collections.Generic; using BITKit.UX; using UnityEngine; using UnityEngine.UIElements; public class UXBuilder : MonoBehaviour { [SerializeField, SerializeReference, SubclassSelector] private IVisualElementProvider visualElementProvider; [SerializeField] private VisualTreeAsset visualTreeAsset; private readonly List instances = new(); public T Build() where T : VisualElement { var clone = visualTreeAsset.CloneTree()[0]; visualElementProvider.GetVisualElement().Add(clone); instances.Add(clone); return clone as T; } public UXContainer BuildAsContainer() => new(Build()); public void Clear() { foreach (var x in instances) { visualElementProvider.GetVisualElement().Remove(x); } instances.Clear(); } }