FAQ
beginner faqLiquid Volume Pro 2 · Troubleshooting & FAQ
Container Setup
How do I use a custom (non-primitive) flask?
Select Irregular topology. If the model's pivot is not at its center, click Center Pivot in the Advanced Settings section. Alternatively, adjust Extents Scale or Upper Limit to fit the liquid to the container without modifying the pivot.
How do I use an open (non-capped) container?
Two approaches work well:
- Cylinder topology — treats the container as if it has an invisible cap on top. Often the simplest solution.
- Nested approach — place a separate LiquidVolume with Cylinder topology and Default No Flask detail inside your open container mesh. See the
NonCappeddemo scene for a working example.
Rendering
How do I prevent overlapping liquid volumes from rendering incorrectly? (URP)
Enable Interleaved Rendering in the Liquid Volume Render Feature settings on your URP asset.
How do I light the liquid with multiple lights?
Edit the shader file for your current detail level and remove the noforwardadd keyword. This enables multi-light support.
Does it work on mobile?
Yes. Tested on Samsung Galaxy S6 and iPhone 7 and newer. For best performance on mobile, consider disabling Refraction Blur, using Cylinder instead of Irregular topology, and disabling Depth Aware. See Performance Tips.
Scripting
How do I get the Y position of the liquid surface?
Use the liquidSurfaceYPosition property:
float surfaceY = lv.liquidSurfaceYPosition;
How do I configure multiple layers via script?
Create a LiquidLayer[] array and assign it to liquidLayers:
using LiquidVolumeFX;
LiquidVolume lv = GetComponent<LiquidVolume>();
var layers = new LiquidVolume.LiquidLayer[4];
layers[0].amount = 0.25f;
layers[0].density = 1f;
layers[0].color = Color.red;
layers[1].amount = 0.2f;
layers[1].density = 0.8f;
layers[1].color = Color.green;
layers[2].amount = 0.15f;
layers[2].density = 0.6f;
layers[2].color = Color.blue;
layers[3].amount = 0.1f;
layers[3].density = 0.4f;
layers[3].color = Color.gray;
lv.liquidLayers = layers;
lv.UpdateLayers();
Build & Compilation
How do I reduce shader compilation time?
Delete unused shader files from LiquidVolume/Resources/Shaders and disable unused Shader Features in the inspector. See Performance Tips for the full list of shaders and optimization strategies.
Liquid does not render correctly on WebGL
Set Edit > Graphics Emulation > WebGL 2.0 in the Unity Editor. The built application supports WebGL 1.0, but the Editor requires WebGL 2.0 emulation.
Is this asset compatible with Unity 6?
Yes. All Kronnect assets are fully compatible with Unity 6. The minimum supported version is Unity 2022.3 LTS, and this includes Unity 6 and any newer releases.
How do I make LiquidVolume react to directional light like a Lit shader, especially when objects in the scene don't receive light from the directional light?
You can assign your directional light to the directional light slot in the LiquidVolume settings. This will make the liquid respond to the directional light similar to standard lit shaders.
How do I disable unwanted shiny reflections from directional light on indoor LiquidVolume objects?
Expand the Flask material and enable the 'Receive Shadow' option. You may also need to disable certain reflection-related options in the material settings. Make sure 'Receive Shadow' is enabled for proper shadow handling.
How does the liquid-volume asset render the surface of the liquid, including the top of middle liquid layers?
The asset uses a raymarching shader that samples the media along a ray crossing the flask. For each ray, it determines whether each sample point is in air, foam, or liquid, and computes the contribution to the final blend. The number of samples can be customized in the inspector under the advanced section.
How do I detect when liquid reaches the top of a container or calculate the spill angle for a pouring system in Liquid Volume Pro?
Use the GetSpillPoint() function from the LiquidVolume script, which returns the position of the spill point and how much liquid would be spilled. This is more reliable than manual calculations using atan(r/h).
Why do all materials with transparency disappear in an Android VR build when using irregular liquid volume, even though it works fine in the editor?
This is typically a URP setup issue. Ensure the Liquid Volume Render Feature is present in all URP assets by using the Kronnect Hub tool to verify the setup. Additionally, try enabling interleaved rendering in the render feature settings.
I have a question not covered here
Please visit the Support Center and use our AI Support Assistant to get answers. If the issue persists, submit a reproduction project so we can investigate further and help you.
Suggest an improvement
Help us improve this documentation page.