using UnityEngine; using UnityEngine.Events; /// <summary> /// 带标签的物体池 /// </summary> public class UiItemPool<TItem, TLoadData, TLoadTask> : AutoLoadPool<TItem, TLoadData, TLoadTask> where TItem : Component where TLoadData : BaseLoadData<TItem, TLoadData> where TLoadTask : BaseLoadTask<TItem, TLoadData, TLoadTask>, new() { public UiItemPool(Transform root) : base(root, true, null) { } public void PullItem(TLoadData taskStarter, UIPathData pathData) { PullItem(taskStarter, pathData.path, pathData.name); } /// <summary> /// 将物品退回到物品池中 /// </summary> /// <param name="bundleName">资源包名称</param> /// <param name="prefabName">物体名称</param> /// <param name="item">物体</param> public void PushItem(UIPathData pathData, TItem item) { PushItem(pathData.path, pathData.name, item); } }