You need to hack the UV values - I’ll try to explain.

Let’s imagine for a moment, we had a texture with a single symbol on it, say a cherry.

And let’s imagine that your quad is relatively square shaped.

To display the cherry, our UV coordinates for our four vertices would be (0,0) in one corner, and (1,1) in the diagonal opposite corner.

What if our texture had five symbols, so the texture is much taller than it is wide, and we only want to display one of the symbols?

To do that, we need the U coordinates to remain at the 0,1 extremes, but now we want to divide our V value by 5, so for example, to display the top symbol only, we’d use corner coordinates of (0,0) and (1, 0.2)

Given this set of coordinates, to scroll the texture, we want to increase the V (or Y if you prefer) coordinates, together, so lets say we increased V, and have coordinated (0,0.1) and (1, 0,3) - we are now looking at the bottom half of symbol 1, and the top half of symbol 2. continuing to scroll, at coordinates (0,0.2) and (1, 0.4) we see the second symbol.

When V coordinate > 1, we overflow, we subtract 1, so we’re really back to 0. This last part might sound confusing, but works in practice.

UV scrolling is generally done using shader parameters, rather than modifying the actual vertex coordinates of the geometry, but I’m not very familiar with Urho3D’s shaders and can’t offer advice on it - still, either way works and is a valid solution.