Version: 5.3 (switch to 5.4b)
Как мне исправить вращение импортированной модели?
Руководство по лучшим практикам работы с графическими ассетами

Как мне работать с водой?

Важно: содержимое этой страницы применимо только к настольному режиму редактора.

В Unity включены некоторые префабы с водой (включая необходимые шейдеры, скрипты и ассеты с графикой) в пакетах Standard Assets и Pro Standard Assets. Unity содержит обычную простую воду, в то время как Unity Pro содержит воду с отражениями в реальном времени и преломлениями. В обоих случаях вода поставляется в качестве отдельных дневных и ночных префабов.

Дневная вода с отражениями (Unity Pro)
Дневная вода с отражениями (Unity Pro)
Дневная вода с отражениями и преломлениями (Unity Pro)
Дневная вода с отражениями и преломлениями (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 требует добавления скрипта на плоский меш и использования шейдера воды:

  1. Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой (layer) Water, который вы можете установить в инспекторе.
  2. Добавьте на объект скрипт WaterSimple (из Standard Assets/Water/Sources).
  3. Используйте шейдер FX/Water (simple) в материале, или подстройте один из предоставленных материалов воды (Daylight Simple Water или Nighttime Simple Water).

Отражающая/преломляющая вода в Unity Pro требует аналогичных шагов для настройки с нуля:

  1. Подберите меш для воды. Это должен быть горизонтально ориентированный плоский меш. UV координаты не требуются. GameObject с водой должен использовать слой (layer) Water, который вы можете установить в инспекторе.
  2. Добавьте на объект скрипт Water (из Pro Standard Assets/Water/Sources).
  3. Используйте шейдер 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). На более старых видео картах используется простая вода.
  • Простая вода работает практически везде, с различными уровнями детализации, в зависимости от аппаратных возможностей.
Как мне исправить вращение импортированной модели?
Руководство по лучшим практикам работы с графическими ассетами