OK, this might not be the best way and I highly recommend that you go and ask in the forums about it to get the best answer.
As I mentioned before, you could use panel clipping with a UIDraggablePanel script attached to the same panel. The idea is instead of using multiple items in your clipped panel, use the texture that you’ve mentioned. Ie. there won’t be a UIGrid
attached to a gameObject with children items, you only have one texture. Make it so that the panel window is smaller in size than the texture that you’re viewing, you can then pan vertically/horizontally (by setting the Scale of UIDraggablePanel to 1,1,0 for example). And don’t forget to attach UIDragPanelContent
to your texture so that it could be scrolled.
For your speed, mess around with the “Momentum Factor” - You can also use the mouse wheel to scroll, for that check out the “Scroll wheel factor” - All inside the UIDraggablePanel
script which will be attached to your clipping panel.
Now, I’ll assume that you didn’t get all that, so I advise you to take a look at this tutorial, it’s Korean I know, but it’s really good! Watch it after reading some of the previous links so that you have a better idea of what’s he doing.
The end result of my previous talk is something like this:

You could pan this texture all four directions. Now the tricky thing is how to make it repeatable, ie when you scroll all the way to the left/right you get back to the right/left, if that’s what you meant with “repeatable” - Out of the surface of my head, you could say something like:
if (panel reached the right border)
snap back to the left;
else if (... left border)
snap to the right;
Or something like that
- It’s doable of course, but tricky, and it’s definitely gonna be a hack (which will feel good once you get it right XD)
(If you’re wondering about the soft edges I have, this is due to Soft clipping, there are others: Hard and alpha clipping. Soft requires the most resources but gives the best quality, hard is the opposite, while alpha is in-between. More info about them could be found in the links ^)
For zooming in/out, you could use another camera that only sees the texture area, for that you have to adjust its rect viewport. For more details, you can follow my series of questions here where I had to do this for a feature I was working on for my game.
Let me know how it goes, I’ll let you know if I think of something as well. Good luck.