int visibleItems = 0;
if(grid.arrangement == UIGrid.Arrangement.Horizontal){
visibleItems = Mathf.RoundToInt(mScrollView.panel.width / (float)grid.cellWidth);
}
else{
visibleItems = Mathf.RoundToInt(mScrollView.panel.height / (float)grid.cellHeight);
}
int halfItemCount = Mathf.FloorToInt(visibleItems / 2.0f);
//then later on...
if( index < halfItemCount){
index = halfItemCount;
closest = trans.GetChild(index);
}
else if(index > trans.childCount - (halfItemCount+1)){
index = trans.childCount - (halfItemCount+1);
closest = trans.GetChild(index);
}