Water in Unity
Unity includes several water Prefabs (including the necessary Shaders, scripts and art Assets) within the Standard Assets packages. Separate daylight and nighttime water Prefabs are provided.
Note that the water reflections described in this document do not work in VR.

Setting up water
Place one of the existing water Prefabs into your Scene. Make sure you have the Standard Assets installed:
- В Unity есть Daylight Simple Water и Nighttime Simple Water в Standard Assets->Water.
- В Unity Pro есть Daylight Water и Nighttime Water в Pro Standard Assets->Water (но также требуются некоторые ассеты из Standard Assets->Water). Режим воды (Simple (простая), Reflective (отражающая), Refractive (преломляющая)) можно изменить в инспекторе.
Для воды префаб использует меш в форме овала. Если вы желаете использовать другой меш, то проще всего просто поменять его в Mesh Filter у объекта воды:

Создание воды с нуля (для продвинутых пользователей)
Простая вода в Unity требует добавления скрипта на плоский меш и использования шейдера воды:
- Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой (layer) Water, который вы можете установить в инспекторе.
- Добавьте на объект скрипт WaterSimple (из Standard Assets/Water/Sources).
- Используйте шейдер FX/Water (simple) в материале, или подстройте один из предоставленных материалов воды (Daylight Simple Water или Nighttime Simple Water).
Отражающая/преломляющая вода в Unity Pro требует аналогичных шагов для настройки с нуля:
- Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой (layer) Water, который вы можете установить в инспекторе.
- Добавьте на объект скрипт Water (из Pro Standard Assets/Water/Sources).
- Используйте шейдер FX/Water в материале, или подстройте один из предоставленных материалов воды (Daylight Water или Nighttime Water).
Свойства в материалах воды
Эти свойства используются в шейдере отражающей и преломляющей воды. Большинство из них также используется и в шейдере простой воды.
| Свойство: | Функция: |
|---|---|
| Wave scale | Изменение масштаба карты нормалей волн. Чем меньше значение, тем больше будут волны у воды. |
| Reflection/refraction distort | Как сильно отражение/преломление будет искажаться картой нормалей волн. |
| Refraction color | Дополнительный оттенок отражения. |
| Environment reflection/refraction | Render текстуры для отражения и преломления в реальном времени. |
| Normalmap | Определяет форму волн. Итоговые волны производятся путём совмещения этих двух карт нормалей, каждая из которых смещается в разном направлении, с разным масштабом и скоростью. Вторая карта нормалей в два раза меньше первой. |
| Wave speed | Скорость смещения для первой (1е и 2е числа) и второй карты нормалей (3е и 4е числа). |
| Fresnel | Текстура с альфа-каналом, управляющим эффектом Fresnel — количество видимого отражения против количества видимого преломления, в зависимости от угла зрения. |
Остальные свойства не используются отражающим и преломляющим шейдером, но должны быть настроены в случае, если графический ускоритель пользователя не поддерживает его и вынужден откатиться на более простой шейдер.
| Свойство: | Функция: |
|---|---|
| Reflective color/cube and fresnel | Текстура, которая определяет цвет воды (RGB) и эффект Fresnel (A), в зависимости от угла зрения. |
| Horizon color | Цвет воды на горизонте (используется только в шейдере простой воды). |
| Fallback texture | Текстура для отображения воды на очень старых видео картах, если не может работать ни один из более красивых шейдеров. |
Вода для Юнити. Как правильно сделать воду в приложении на Unity3D?

Чтобы воспользоваться этим префабом , нужно:
- Проделать первые 3 пункта, описанные выше.
- Потом вам буд у т доступн ы 2 папки: Water и Water4. Выбираем Water4.
- Внутри этой папки находим еще одну папку Prefabs.
- Тут вам будут доступны 2 префаба: Water4Simple и Water4Advanced. Оба эти компонента в принципе похожи, однако они отличаются некоторыми настройками.
- Выполните необходимые настройки положения, а также настройки в «Инспекторе».
- Наслаждайтесь результатом.
В 4-м пунк т е вам будет предложено 2 префаба. На первый взгляд они будут очень похож и , но это не так. Они отличаются настройками:
- зеркального отражения,
- световыми бликами,
- составом и цветом воды,
- гребнями волн,
- пеной на гребнях,
- и др.
Заключение
Вода в Unity добавляется не слишком сложно, если вас удовлетвори т качество предоставляемых инструментов самого движка. И сходя и з практики , стандартных инструментов достаточно для создания интересных игр, когда вода — это не основной элемент игры. Если же вам потребуется более «крутая» вода, тогда нужно будет вмешательство в код. А это тема уже для другой статьи.
В целом, все описанные 3 инструмента отличаются внешним видом самой воды. Поэтому вы смело можете опробовать все и для себя решить , с каким работать дальше.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Unity3D: Как сделать струю воды?
Привет всем!
Слышал много о Unity, в сети говорят что в Unity запросто делаются такие простые вещи как струя воды, пламя и т.п.
Вот я и решил попробовать сделать эту самую струю воды и посмотреть как оно просто!
Задача: Есть сосуд, его нужно наполнить водой. Вода должна литься из крана(струя воды).
Сложность в том, что если делать струю через систему частиц, то струя пролетает мимо ведра.
Я так понимаю, что система частиц не может иметь физики риджит бади(из них нельзя сделать капли воды).
Так как же тогда решить такую проблему.
У меня идей нет, в box2d я бы сделал тело, прилепил бы спрайт размерами больше тела и обрабатывал бы каждую каплю на правильность отображения спрайта.
А тут как быть.
Заранее благодарен за ответы)
- Misanthrope
- Постоялец
#1
23:41, 25 окт 2014
Alerr
> запросто делаются такие простые вещи как струя воды, пламя
да, покупаешь соответствующий ассет в сторе и все дела, проще некуда:)
#2
0:05, 26 окт 2014
Как мне работать с водой?
Важно: содержимое этой страницы применимо только к настольному режиму редактора.
В Unity включены некоторые префабы с водой (включая необходимые шейдеры, скрипты и ассеты с графикой) в пакетах Standard Assets и Pro Standard Assets. Unity содержит обычную простую воду, в то время как Unity Pro содержит воду с отражениями в реальном времени и преломлениями. В обоих случаях вода поставляется в качестве отдельных дневных и ночных префабов.

Настройка воды
В большинстве случаев вам достаточно просто разместить один из существующих префабов в вашей сцене (убедитесь, что у вас установлен набор стандартных ассетов):
- В Unity есть Daylight Simple Water и Nighttime Simple Water в Standard Assets->Water .
- В Unity Pro есть Daylight Water и Nighttime Water в Pro Standard Assets->Water (но также требуются некоторые ассеты из Standard Assets->Water ). Режим воды (Simple (простая), Reflective (отражающая), Refractive (преломляющая)) можно изменить в инспекторе.
Для воды префаб использует меш в форме овала. Если вы желаете использовать другой меш, то проще всего просто поменять его в Mesh Filter у объекта воды:

Создание воды с нуля (для продвинутых пользователей)
Простая вода в Unity требует добавления скрипта на плоский меш и использования шейдера воды:
- Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой ( layer ) Water, который вы можете установить в инспекторе .
- Добавьте на объект скрипт WaterSimple (из Standard Assets/Water/Sources ).
- Используйте шейдер FX/Water (simple) в материале, или подстройте один из предоставленных материалов воды ( Daylight Simple Water или Nighttime Simple Water ).
Отражающая/преломляющая вода в Unity Pro требует аналогичных шагов для настройки с нуля:
- Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой ( layer ) Water, который вы можете установить в инспекторе .
- Добавьте на объект скрипт Water (из Pro Standard Assets/Water/Sources ).
- Используйте шейдер FX/Water в материале, или подстройте один из предоставленных материалов воды ( Daylight Water или Nighttime Water ).
Свойства в материалах воды
Эти свойства используются в шейдере отражающей и преломляющей воды. Большинство из них также используется и в шейдере простой воды.
| Свойство: | Функция: |
|---|---|
| Wave scale | Изменение масштаба карты нормалей волн. Чем меньше значение, тем больше будут волны у воды. |
| Reflection/refraction distort | Как сильно отражение/преломление будет искажаться картой нормалей волн. |
| Refraction color | Дополнительный оттенок отражения. |
| Environment reflection/refraction | Render текстуры для отражения и преломления в реальном времени. |
| Normalmap | Определяет форму волн. Итоговые волны производятся путём совмещения этих двух карт нормалей, каждая из которых смещается в разном направлении, с разным масштабом и скоростью. Вторая карта нормалей в два раза меньше первой. |
| Wave speed | Скорость смещения для первой (1е и 2е числа) и второй карты нормалей (3е и 4е числа). |
| Fresnel | Текстура с альфа-каналом, управляющим эффектом Fresnel — количество видимого отражения против количества видимого преломления, в зависимости от угла зрения. |
Остальные свойства не используются отражающим и преломляющим шейдером, но должны быть настроены в случае, если графический ускоритель пользователя не поддерживает его и вынужден откатиться на более простой шейдер.
| Свойство: | Функция: |
|---|---|
| Reflective color/cube and fresnel | Текстура, которая определяет цвет воды (RGB) и эффект Fresnel (A), в зависимости от угла зрения. |
| Horizon color | Цвет воды на горизонте (используется только в шейдере простой воды). |
| Fallback texture | Текстура для отображения воды на очень старых видео картах, если не может работать ни один из более красивых шейдеров. |
Аппаратная поддержка
- Отражающая + преломляющая вода работает на видео картах с поддержкой pixel shader 2.0 (GeForce FX и новее, Radeon 9500 и новее, Intel 9xx). На более старых адаптерах используется отражающая вода.
- Отражающая вода работает на видео картах с поддержкой pixel shader 1.4 (GeForce FX и новее, Radeon 8500 и новее, Intel 9xx). На более старых видео картах используется простая вода.
- Простая вода работает практически везде, с различными уровнями детализации, в зависимости от аппаратных возможностей.