Underwater effect when entering down a slope

Hello, I am working on an island game - that means lots of water [ocean, lakes, rivers]

I have a problem with implementing the underwater effect - I’ve searched everywhere: google, youtube, Unity answers and found nothing.

The underwater effect I have right now is a simple [make fog more dense IF camera.y is lower than the water level] script, it does work both when you are underwater AND when you go out.

The problem appears when I slowly walk down a slope, into the water - there is a moment when I see half underwater, and half over it - at the start, the fog is minimal and I can clearly see under water area without any fog, then when I slowly go deeper the fog becomes more dense BUT it happens both underwater AND over it - all of it while still seeing the edge of “water” plane in the middle. It is ugly, and unacceptable.

Are there any tutorials or tricks to make the process seamless? I am using unity free [got no money to get the pro one, and not gonna ARR!, so only free features available for me]

I attached a screenshot of what exactly is the problem: Notice the too-fogged mountains in the distance - this happens when the underwater effect kicks in [they are more visible normally], and also the plane of the water being “cut” and visible. On the second screenshot you can see how the mountains are supposed to look


One really simple [not sure if also simple to implement] solution I can think of would be displaying a flat texture right in front of the players face, that would level itself with the edge of water plane automatically - would look weird if player looked straight up, but still - could fix most of the ugglyness.

Any idea on how to do it? Would it be hard, or significantly drop the fps?

Here’s a mockup of how it could look: