Рассматриваю урок Stealth Tutorial, но в Unity 5 туман добавляется по другому (на своем примере):
1. Добавляем на сцену поверхность
2. Создаем для нее материал зеленого цвета (просто чтобы она не была белая)
3. Если теперь добавить туман, то он будет отображаться в окне камеры (на сцене его не будет):
▶ ▶ ▶
4. По дефолту установлен режим Linear, поэтому эффекта не ощущается. Чтобы тумал «проявился, нужно установить режим Exponential или Exponential Squared.
Если в настройках Lighting выдается предупреждение «Fog does not affect opaque objects in Diferred Shading. Use Global Fog image effect.», то можно использовать свои шейдеры. Чтобы использовать не встроенный шейдер тумана, можно добавить на камеру другие скрипт и шейдер (например из набора Standard Assets):
1. Нам нужны два скрипта: GlobalFog.cs и PostEffectsBase.cs.
2. Чтобы они работали, нужен также шейдер GlobalFog.shader.
3. Теперь выделяем в Инспекторе основную камеру и добавляем ей скрипт GlobalFog.cs.
4. После добавления скрипта в его настройки нужно перетащить шейдер GlobalFog.shader
5. Если теперь взглянуть на сцену (через камеру), то туман будет. Правда почему-то он не будет затрагивать небо (SkyBox):
Может конечно это сделано для оптимизации, но как-то странно. Поэтому можно попробовать ее отключить, закомментировав пару строк в файле GlobalFog.shader:
//if (dpth == _DistanceParams.y)
// fogFac = 1.0;
Архив со скриптами и шейдером тумана.
Если вы хотите, чтобы эффект тумана отображался не только в окне «Игры», но и в окне «Сцены», в файл GlobalFog.cs необходимо добавить строки:
//#if UNITY_5_4_OR_NEWER
[ImageEffectAllowedInSceneView]
//#endif
- C#: Сравнить два массива - 12.12.2024
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024