Legacy Documentation: Version 4.5
Previous
How do I fix the rotation of an imported model?
Next
FBX export guide

How do I use Water?

Note: The content on this page applies to the desktop editor mode only.

Unity includes several water prefabs (including needed shaders, scripts and art assets) within the Standard Assets and Pro Standard Assets packages. Unity includes a basic water, while Unity Pro includes water with real-time reflections and refractions, and in both cases those are provided as separate daylight and nighttime water prefabs.

Reflective daylight water (Unity Pro)
Reflective daylight water (Unity Pro)
Reflective/Refractive daylight water (Unity Pro)
Reflective/Refractive daylight water (Unity Pro)

Water setup

In most cases you just need to place one of the existing Prefabs into your scene (make sure to have the Standard Assets installed):

  • Unity has Daylight Simple Water and Nighttime Simple Water in Standard Assets->Water.
  • Unity Pro has Daylight Water and Nighttime Water in Pro Standard Assets->Water (but it needs some assets from Standard Assets->Water as well). Water mode (Simple, Reflective, Refractive) can be set in the Inspector.

The prefab uses an oval-shaped mesh for the water. If you need to use a different Mesh the easiest way is to simply change it in the Mesh Filter of the water object:

Creating water from scratch (Advanced)

The simple water in Unity requires attaching a script to a plane-like mesh and using the water shader:

  1. Have mesh for the water. This should be a flat mesh, oriented horizontally. UV coordinates are not required. The water GameObject should use the Water layer, which you can set in the Inspector.
  2. Attach WaterSimple script (from Standard Assets/Water/Sources) to the object.
  3. Use FX/Water (simple) shader in the material, or tweak one of provided water materials (Daylight Simple Water or Nighttime Simple Water).

The reflective/refractive water in Unity Pro requires similar steps to set up from scratch:

  1. Have mesh for the water. This should be a flat mesh, oriented horizontally. UV coordinates are not required. The water GameObject should use the Water layer, which you can set in the Inspector.
  2. Attach Water script (from Pro Standard Assets/Water/Sources) to the object.
    • Water rendering mode can be set in the Inspector: Simple, Reflective or Refractive.
  3. Use FX/Water shader in the material, or tweak one of provided water materials (Daylight Water or Nighttime Water).

Properties in water materials

These properties are used in Reflective & Refractive water shader. Most of them are used in simple water shader as well.

Property: Function:
Wave scale Scaling of waves normal map. The smaller the value, the larger water waves.
Reflection/refraction distort How much reflection/refraction is distorted by the waves normal map.
Refraction color Additional tint for refraction.
Environment reflection/refraction Render textures for real-time reflection and refraction.
Normalmap Defines the shape of the waves. The final waves are produced by combining these two normal maps, each scrolling at different direction, scale and speed. The second normal map is half as large as the first one.
Wave speed Scrolling speed for first normal map (1st and 2nd numbers) and the second normal map (3rd and 4th numbers).
Fresnel A texture with alpha channel controlling the Fresnel efffect - how much reflection vs. refraction is visible, based on viewing angle.

The rest of properties are not used by Reflective & Refractive shader by itself, but need to be set up in case user’s video card does not suppor it and must fallback to the simpler shader:

Property: Function:
Reflective color/cube and fresnel A texture that defines water color (RGB) and Fresnel effect (A) based on viewing angle.
Horizon color The color of the water at horizon. (Used only in the simple water shader)
Fallback texture Texture used to represent the water on really old video cards, if none of better looking shaders can’t run on it.

Hardware support

  • Reflective + Refractive water works on graphics cards with pixel shader 2.0 support (GeForce FX and up, Radeon 9500 and up, Intel 9xx). On older cards, Reflective water is used.
  • Reflective water works on graphics cards with pixel shader 1.4 support (GeForce FX and up, Radeon 8500 and up, Intel 9xx). On older cards, Simple water is used.
  • Simple water works about everywhere, with various levels of detail depending on hardware capabilities.
Previous
How do I fix the rotation of an imported model?
Next
FBX export guide