private IEnumerable <RectTransform> FindInvisibles(RangeInt viewRange) { var hides = visibles.Keys.Except(viewRange.GetEnumerable()).ToArray(); foreach (var i in hides) { visibles.Remove(i); } return(rectChildren.Except(visibles.Values).ToArray()); }
private void UpdateChildIndex(RangeInt viewRange) { var invisibles = FindInvisibles(viewRange).GetEnumerator(); var newlyVisibles = viewRange.GetEnumerable().Except(visibles.Keys); foreach (var index in newlyVisibles) { if (invisibles.MoveNext() == false) { break; } var invisible = invisibles.Current; visibles.Add(index, invisible); } }