// Reset the previous tile, swap your grid position to the new tile and occupy it public virtual void SwapPosition(GridTile targetGridTile) { // Update variables on the owner GridObject _gridObject.RemoveFromTile(); _gridObject.SetCurrentGridTile(targetGridTile); _gridObject.AddToTile(targetGridTile); _gridObject.m_GridPosition = targetGridTile.m_GridPosition; }