Skip to content

FAQ (Frequently Asked Questions)

Is the asset compatible with Unity 6 and the latest LTS?

Of course :)
The asset is and always will be compatible with the latest Unity LTS.

Which render pipeline does it need?

Any of them. The toolkit ships no shaders and touches no rendering, so Built-in, URP and HDRP are all the same to it. The one component that goes near materials, ShaderFloatSpringComponent, just sets a named float on whatever material you point it at.

Do springs keep running while the game is paused?

Only if you ask them to. Every Spring Component has a Use Scaled Time option. Leave it on and the spring uses Time.deltaTime, so Time.timeScale = 0 freezes it along with everything else. Turn it off and it uses unscaled time and keeps animating, which is what you want for a pause menu that has to stay alive while the game behind it is stopped.

How many springs can I use?

More than you expect. Each spring is a handful of arithmetic per axis per frame, and the demo runs a whole scene of them without trouble. Profile before worrying, and see Springs vs Tweens for the honest comparison.

Will the animation look the same at 30 and 144 fps?

Yes, as long as Fixed Update stays enabled in the Asset Window. It subdivides the frame into fixed steps so the integration does not depend on frame rate. It is on by default.

Can I add Spring Components from code at runtime?

Yes, with one extra step: you have to call Initialize() yourself after setting the component up. See Add Components at runtime.

When updating the asset I see a warning saying that the spring size is not valid

During the first asset version the rotation spring changed quite a lot. The rotation spring is mostly used in the TransformSpringComponent. So those objects using this component can trigger this warning. To fix it you can either create a new instance of TransformSpringComponent and copy the values over. Or you can try using the method explained over at fix-spring-size-warning.

In some cases my spring will oscillate out of control

This is a rare occurrence typically associated with springs using very high force values (much higher than any of the values used in the Demos which are super stable at any framerate). The default integration method prioritizes performance, but in extreme cases, numerical instability can cause oscillation. To resolve this, simply lower the Force Threshold value in the Asset Window settings. This will make more of your springs use the analytical (physical-based) integration method, which offers superior stability at a slight performance cost. For maximum stability, you can set the Force Threshold to -1, which forces all springs to use the analytical solution.

My spring component disabled itself and logged an error

That is IsValidSpringComponent doing its job. Every component checks that it has what it needs, at startup and again each frame, and switches itself off rather than throwing when something is missing. The error names the object and the reason, which is usually an unassigned reference: no Light on a LightIntensitySpringComponent, no Camera on a CamFovOrSizeSpringComponent, and so on.