Scene Presentation
A small, standalone visual effect for level authors: drop it on a water plane and the surface reads as moving, with no wave geometry and no per-frame cost beyond a texture offset.
Water Surface Scroll
WaterSurfaceScrolldrifts a renderer's normal map over time, so the specular highlights swim across an otherwise flat surface. Put it on any water renderer whose material is a plain URP/Lit shader with a colour and a normal map — no base texture, or that drifts too.
There is no geometry to displace on a surface built this way (a single quad is the usual shape), so the motion has to happen per-pixel: scrolling the normal map moves the highlights, which is what actually sells water at this scale.
| Field | Type | Default | What it does |
|---|---|---|---|
scrollSpeed | Vector2 | (0.018, 0.011) | Normal-map drift in UV units per second. Small values read as a slow swell; the two axes deliberately differ so it doesn't look like a conveyor belt. |
Using it on your own level
Add a quad or plane, give it a URP/Lit material with a normal map and no base texture, add a WaterSurfaceScroll (it requires a Renderer), and tune scrollSpeed to taste. It runs a material instance (Renderer.material), so the shared material asset on disk is never modified.