The Liquid Shader (3D) exposes a lot of properties, and finding a believable combination of all of them by hand takes time. QuickLiquidSetup.cs exists to skip that step: it maps five intuitive controls onto the whole set of shader properties, so that a plausible liquid is only a couple of sliders away.
Attach the component to the same GameObject as your Liquid Surface via Add Component > Project GAMEDEV > Essential 3D Shaders > Quick Liquid Setup. It updates immediately, both in the Editor and in Play Mode, and offers the following settings.
Movement Speed
The base speed of the whole liquid – the flow, the waves, the ripples, and the patches. Each of those layers receives its own multiplier on top of this value, so that they never move in lockstep. Set to 0 to bring the liquid to a complete standstill.
Movement Direction
The primary direction of movement, in degrees (0 – 360). 0 moves along the local +X axis, 90 moves along the local +Z axis. The waves and the patches are automatically offset by a few degrees from this direction to keep the surface from looking mechanical.
Viscosity
How thick the liquid is (0 – 1). Thin liquids such as water move quickly, with fine, lively surface detail. Thick liquids such as lava, honey, or tar crawl, with a heavier, slower surface response and a more pronounced relief from the normal map.
Volatility
How energetic the surface is (0 – 1). Low values produce an almost still surface; high values produce tall waves, strong ripples, and pronounced vertex displacement.
Patch Preset
All five settings are also available in code. Assigning to any of them re-applies the setup immediately, which makes it straightforward to have,
for example, lava thicken and slow down as it cools. The component lives in the
ProjectGamedev.Shaders.Essential3DShaders.LiquidShader3D namespace.
quickLiquidSetup being the Quick Liquid Setup component of your liquid, change the settings like so:quickLiquidSetup.MovementSpeed = 0.5f;
quickLiquidSetup.MovementDirection = 90f;
quickLiquidSetup.Viscosity = 0.9f;
quickLiquidSetup.Volatility = 0.25f;
quickLiquidSetup.Patches = QuickLiquidSetup.PatchPreset.Crust;
public float MovementSpeed
public float MovementDirection
public float Viscosity
public float Volatility
public QuickLiquidSetup.PatchPreset Patches