I'm using this shader for my water. It is a transparent water shader. Whenever there are particles over it, it seems like the particles are more transparent than they are when they're over any other texture. Is it a bug in the shader? In this picture all of the particles are in front of the water
This is the classic "it's hard to render transparent objects correctly" problem. Unity sorts transparent objects (in your case, both water and particles are) by distance from the camera to the object center, and then renders them back to front. This is all ok if that produces the correct sorting. However, because water is quite large, it's center might be about anywhere, so it might happen that particles are drawn before the water (while they should be drawn after it). Possible solutions would be: try changing the particle shader; make it use the "Overlay" render queue. This way they will be always drawn after water (which is using the "Transparent" render queue).
Another solution which has been mentioned a few times is to add a bit of geometry to the water to force the center to be more distant from the camera. This works quite well. --Eric
Thanks Aras, I checked the water shader and it's "Queue" = "Overlay", i changed the "Overlay" to "Transparent" and now it seems to work properly.