コード例 #1
0
        protected virtual void Init()
        {
            if (_inited)
            {
                return;
            }

            // Will cache exist item later
            var pendingToCahce = new List <GameObject>();

            for (var i = 0; i < transform.childCount; i++)
            {
                var child = transform.GetChild(i).gameObject;
                pendingToCahce.Add(child);
            }

            // Create root for scrolling
            _root = new GameObject("Root").transform;
            _root.SetParent(transform, false);

            // Create object pool in root
            _pool = GameObjectPool.CreateSetScalePool("Pool", _root);
            pendingToCahce.ForEach(x =>
            {
                _pool.ReleaseAndRegister(x, ListViewItem.gameObject);
            });

            // Init virtual item record
            _virtualItems = new ResizableList <VirtualItem>(() =>
            {
                var item           = new VirtualItem();
                item.ListViewItem  = ListViewItem;
                item.Index         = _virtualItems.Count;
                item.Parent        = _root;
                item.OnUpdate      = OnItemUpdate;
                item.Pool          = _pool;
                item.LocalPosition = GetItemLocalPosition(ListViewItem, item.Index);
                return(item);
            }, VisualizeItem);

            _inited = true;
        }
コード例 #2
0
 public void OnCahced(GameObject instance, GameObjectPool pool)
 {
 }
コード例 #3
0
 public void OnCahced(GameObject instance, GameObjectPool pool)
 {
     instance.SetActive(false);
 }
コード例 #4
0
 public void OnCahced(GameObject instance, GameObjectPool pool)
 {
     instance.transform.localScale = Vector3.zero;
 }