If you are calling grid.Reposition(), there is no need to set 'repositionNow' as well. The marking of parent as changed needs to happen as soon as you change the transform's parent, not later. Also, you can just have a look at UIDragDropItem's OnDragDropRelease function, it handles everything related to changing the dragged object's parent there -- but in your case I am guessing you need far less. In short, aside from the things I mentioned above, what you're doing is fine.