This shader was the first one that I made after learning Unity shader language (Shader Lab) which is a variant of HLSL. The shader himself doesn’t apply the caustics effect. The water shader only allow transparency, waves and refraction.
The caustics effect is made from a camera that draw textures on meshes. This camera have a list of caustics textures (60 of them) which are part of an animation and a script swap between them to have a 60 FPS caustics effect on the pool.