using System.Collections.Generic; using UnityEngine.Pool; using UnityEngine.UIElements; namespace RosettaUI.UIToolkit { /// /// Itemを追加するとき最後のアイテムをコピーするListViewController /// public class ListViewControllerCustom : ListViewController { public override void AddItems(int itemCount) { if (itemCount <= 0) return; var previousCount = GetItemsCount(); var intList = ListPool.Get(); try { var type = itemsSource.GetType(); var itemType = ListUtility.GetItemType(type); for (var i = 0; i < itemCount; ++i) { itemsSource = ListUtility.AddItemAtLast(itemsSource, type, itemType); intList.Add(previousCount + i); } RaiseItemsAdded(intList); } finally { CollectionPool, int>.Release(intList); } RaiseOnSizeChanged(); } } }