I've been porting Martins Upitis' water shader from Blender to Unity. Got a pretty good reception on Reddit and many people wanted access to the source code so with Martins' permission I've placed it on GitHub. There's much more information about it on GitHub and I'll probably edit this post with more images and a video but for now, enjoy Free to use in your projects but it would be wise to treat this as more of a proof of concept. It requires two shaders - one for the water surface and one for anything which could be submerged in the water (such as terrain, etc.). Because of that second point, it might be difficult to adapt this to an existing project. It is set up this way so that the underwater lighting model can be used, which differs from your standard Lambert lighting model (it essentially has rim lighting and the light colour differs from above water due to scattering and extinction through the water body). With some time and elbow grease I may be able to move this into a deferred replacement shader which toggles between the default lighting model and the underwater model depending on whether the fragment is submerged or not.