bool NeedPull(FTNodeBase cell) { if (activeCells.IndexOf(cell) == 0) { var d1 = direction == FTDirection.Vertical ? cell.AnchoredPosition.y - cell.Height - spacing + ContentTrans.anchoredPosition.y : cell.AnchoredPosition.x - cell.Width - spacing + ContentTrans.anchoredPosition.x; if (d1 > 0.01f) { return(true); } } var d2 = direction == FTDirection.Vertical ? cell.AnchoredPosition.y + ContentTrans.anchoredPosition.y : cell.AnchoredPosition.x + ContentTrans.anchoredPosition.x; var d3 = direction == FTDirection.Vertical ? -ViewPortTrans.sizeDelta.y : -ViewPortTrans.sizeDelta.x; if (d2 < d3 - 0.01f) { return(true); } if (cell.dataIndex >= cellCount) { return(true); } return(false); }
protected void OnInstantiateCell(FTNodeBase cell) { InitAction?.Invoke(cell); cells.Add(cell); }
void Pool(FTNodeBase cell) { activeCells.Remove(cell); cell.gameObject.SetActive(false); cellPool.Push(cell); }