using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UIElements; namespace MuHua { /// /// UI项容器 /// public class ModuleUIItems : ModuleUIPanel where T : ModuleUIItem { public readonly VisualTreeAsset templateAsset; public readonly Func generate; public List uiItems = new List(); /// 数据操作 uiItems[index]; /// UI容器 public ModuleUIItems(VisualElement element, VisualTreeAsset templateAsset, Func generate) : base(element) { this.templateAsset = templateAsset; this.generate = generate; } /// 释放资源 public void Release() { element.Clear(); uiItems.ForEach(obj => obj.Release()); uiItems = new List(); } /// 创建UI项 public void Create(List datas) { Release(); datas.ForEach(Create); } /// 创建UI项 public void Create(Data data) { VisualElement element = templateAsset.Instantiate(); T item = generate(data, element); this.element.Add(item.element); uiItems.Add(item); } } }