void RecreateRootItems() { foreach (var child in m_TreeViewRootItems) { ((IPoolable)child).ReturnToPool(); } m_TreeViewRootItems.Clear(); EntityHierarchyPool.ReturnAllVisualElements(this); if (m_Hierarchy?.Strategy == null) { return; } using (var rootNodes = m_Hierarchy.Strategy.GetChildren(EntityHierarchyNodeId.Root, Allocator.TempJob)) { foreach (var node in rootNodes) { m_TreeViewRootItems.Add(EntityHierarchyPool.GetTreeViewItem(null, node, m_Hierarchy)); } } }
void IPoolable.ReturnToPool() => EntityHierarchyPool.ReturnVisualElement(this);
VisualElement OnMakeItem() => EntityHierarchyPool.GetVisualElement(this);