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.
Installed coastal presentation
Install frames Playground as a compact coastal garden using the bundled trees, rocks, timber, cream and teal materials, water and sky. A disabled Marketing camera bookmarks group stores four useful compositions without taking control of gameplay cameras.
The six authored showcase scenes receive a sparse shared coastal frame: a few corner landmarks and a wayfinder leave their teaching zones readable. Generated is deliberately excluded because its playable layout does not exist until runtime; decorating it during install would guess at positions before the map is built.
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.