一、前言

1.官方简介描述:

现在支持URP。HDRP支持目前正在开发中。
UniStorm是AAA动态天空、天气、云阴影和程序体积云的最终解决方案。UniStorm有超过100个可定制的选项,以帮助使环境的生活。听取用户的反馈有助于使
UniStorm的用户友好和易于使用。UniStorm非常强大,可以让你调整天空中的每个组件。
你的想象力是有限的!

2.其他描述

这里总结翻译的是untiy商城中 UniStorm的描述,英文好的童鞋可以去商城搜索阅读,大体了解这个插件有这么些东西功能就可以了,没必要全部都搞懂(因为涉及的比较多,感兴趣的话可以深入研究一下)。

插件下载:

链接:https://pan.baidu.com/s/16isUc2haTVWLWiwCv9qN0A 
提取码:syq1

这里我用的是网上下载的3.0.1版本,新版本没有买 (大约360块大洋),大家要是商用的话还是推荐买一个官方正版,这里为了学习就使用3.0.1的版本了

URP Supported (URP的支持)什么是URP?

Urp全称为Universal Render Pipeline,即通用渲染管线.

什么是Render PipeLine(渲染管线),渲染管线也称为渲染流水线、像素流水线或像素管线,是显示芯片内部处理图形信号相互独立的的并行处理单元.

UniStorm现在支持unity2019.4.9及更高版本的URP。HDRP支持目前正在开发中

AAA Volumetric Clouds(AAA体积云)

UniStorm 4.0带来了一个完全重新设计的云系统,能够创建AAA程序,自阴影,PBR,体积云在一个伟大的帧率,只使用一个绘制cal!UniStorm的云使用了最新的阴影和性能技术,如时间重投影和lod。Unistorm的云有4个质量设置,一个容量和20个选项,都可以在运行时或在Unistorm编辑器中更改。

这使得支持许多设备和计算机成为可能。易于使用的APl使得添加游戏内部质量控制变得简单而轻松。本文还提供了一个这样做的示例。

大家可以参考这篇关于体积云的文章:https://zhuanlan.zhihu.com/p/440607144

Built-In Photon PUN 2 Network Support (内置photonppun 2网络支持)

UniStorm包含了所有你需要让UniStorm与PUN 2一起工作的东西,可以同步多个玩家的天气,时间和日期。包括一个示例场景。

Atmospheric Fog(大气雾)

大气雾,考虑到太阳和月亮的光线方向和颜色,应用于场景,UniStorm云,天空盒。

Cloud Shadows (云的影子)

高效的实时屏幕空间云阴影,匹配当前的云覆盖和云的形成,增加了真实感和视觉质量。

4k Stars with Accurate Constellations(4k星星与准确的星座 )

UniStorm的夜空包括4k颗恒星,星座精确。可在编辑器中选择控制星座的强度。

Procedural Auroras(程序上的极光)

UniStorm允许用户根据天气类型定制极光,以调整亮度、颜色、条件等

Performance (性能评估)

UniStorm的体积云具有时间重投影和lod 4个质量设置(低、中、高和超),每一个都经过正确的计算,比之前的设置要高效得多。这使得UniStorm能够在几乎任何电脑上顺利运行。没有最大的相机远剪切平面距离需要感谢UniStorm的着色器,所以任何距离都可以使用。

Built-in Lightweight Option(内置的轻量级的选项)

UniStorm内置轻量级2D云选项,非常适合低端移动设备或电脑。用户可以在编辑器中选择“移动”选项,该编辑器将自动应用所有最佳设置,而不会覆盖自定义设置(如颜色)。

Dynamic Modular Weather (动态模块化的天气)

模块化天气允许用户创建自定义天气类型。沙尘暴、极光、冰雹、雷暴等都是可能发生的。UniStorm可以使用多少种天气类型是没有限制的,最重要的是,他们允许用户使用自己的自定义粒子效果,设置,和每种天气类型的声音。UniStorm有31种天气类型!这些包括,极光,吹叶,吹雪,吹草,闪电虫,晴,大部分晴,部分多云,大部分多云,多云,阴天,雾,毛毛雨,小雨,雨,大雨,冰雹,雷暴,小雪,雪,大雪,雷雪,火雨,火风暴,沙尘暴,和更多

Cloud Profiles(云配置文件)

这允许你自定义云的外观,以qive吨的变化到每一种天气类型。有了UniStorm的云配置.文件,用户一定会找到适合他们项目的完美云风格。

VR & Mobile Ready (VR和移动设备)

UniStorm的一体化系统还支持移动和VR(Multi和Single Pass)。甚至还有一个易于使:用的选项,可以自动应用目标平台的所有最佳设置,同时保持用户的自定义设置!

Advanced Weather Generation ( 先进的天气一代)

UniStorm根据在UniStorm编辑器中设置的降水几率生成天气。易于使用的曲线图允许用户设置每个月的降水天气类型的几率,而UniStorm将相应地生成天气。夏天比冬天有更少的降水,反之亦然,UniStorm有选项生成一个随机生成的开始小时和每小时的天气,生成每qame小时所有基于降水的几率。如果用户不想要生成天气,也可以选择使用静态天气

Global Weather Shaders & Shading (Built-in Render Pipeline Only) ( 全球天气着色和阴影(仅内置渲染管道)  )

UniStorm的全局天气着色器允许对象在雨天和雪天类型接收雨雪材质。遮阳可以让表面变得更亮,但只适用于不大于90度的表面。大多数表面的内部会显得干燥,比如建筑物内部和屋顶。雪,将功能相同,但与积雪遮阳。雪纹理、雪凹凸纹理、雪高光级别都可以定制。当天气不下雨或下雪时,UniStorm将淡出天气阴影。

Weather and Weather Transitions (天气和天气变迁)

太阳强度,月亮强度,云阴影强度,声音效果,酒量,和各种其他设置,允许真正独特的和可定制的天气。太阳强度,月亮强度,云阴影强度,声音效果,酒量,和各种其他设置,允许真正独特的和可定制的天气。

Procedural Lightning & Lightning Strikes  (程序闪电和闪电打击)

UniStorm的程序闪电系统允许物体被闪电击中。Sers可以定义闪电击中地面和物体的几率。当雷击发生时,用户可以自定义所产生的效果。火焰效果甚至可以在适当的标签下发生。

Day/Night Cycle & Colors Control (日/夜周期和颜色控制)

UniStorm允许你调整所有的环境和天空的颜色,如太阳和月亮的颜色,环境光的颜色,阴影和云阴影强度,雾的颜色,天空的颜色,环境反射强度,和更多!每种颜色对于降水天气类型也有自己的颜色选项。

Time, Date, & Built-in Calendar(时间,曰期和内置日历 )

UniStorm有一个内置的时间和日期系统,可以帮助跟踪玩家在游戏中的时间。UniStorm的日历是准确的,甚至可以使用当前的时间和日期

Customizable Moon Phase System (可定制的月相系统)

UniStorm的定制月相系统允许用户创建自己的月相。UniStorm可以使用的月相数量没有上限。用户可以在UniStorm编辑器中预览他们的月相,并设置开始的月相。UniStorm自动分配所有需要的纹理,并每天更新月亮相位。每个月相也有自己的月光强度。如果需要的话,这使得新月和新月相发出的光比满月时少

Weather Type Conditions (天气条件类型)

可选天气类型条件使天气类型必须达到一定的条件才能从UniStorm的天气生成器生成。这包括特定季节和温度等条件,以及仅从自定义事件或以编程方式调用特定天气类型的能力

UniStorm Profiles (UniStorm概要文件)

导入和导出您的UniStorm设置和从一个UniStorm配置文件。这允许用户保存他们的设置,并在其他UniStorm系统之间转移,而不需要手动应用颜色和设置。

Time of Day Sounds and Music (声音和音乐的时间)

UniStorm允许用户自定义一天中每个时间播放的音效和/或音乐。每个声音效果和歌曲之间的延迟量可以定制。可以使用的数量是没有限制的。

Sound Manager (声音管理器)

UniStorm的声音管理器处理所有您的UniStorm创建的声音使用生成的统一音频混合器。这让你可以精确控制主环境,天气和音乐的音量,可以用用户创建的Ul或可以在Unistorm编辑器中控制。

Built-in Events (内置的事件)

UniStorm内置的事件可以在游戏中的每一个小时、每一天、每一个月、每一年,甚至在天气变化时调用,允许用户轻松地为他们的游戏创建附加功能。

Included Examples (包括例子)自带的Demo场景

UniStorm包括6个场景示例,演示了你可以使用UniStorm实现的不同功能。一个保存示例系统也包括,允许用户保存他们的qame时间,日期,天气,温度,更多的手动和自动保存选项。这些数据可以被加载,这样用户就可以从他们离开的地方重新开始。

The Editor (编辑器)

UniStorm的编辑器设计很大程度上受到了用户反馈的影响,他们认为编辑器很直观,功能强大,而且学习曲线很低。UniStorm的编辑器是自文档化的,所以每个组件都可以通过工具提示直接在编辑器中解释。

API & Documentation (API和文档)

Unstorm的API可以帮助提供额外的游戏机制和功能,如访问温度、时间、日期、当前天气、预测天气、季节等。教程视频和外部文档,包括帮助用户得到最大限度的从UniStorm。

CTS Weather Manager Support (CTS天气管理支持)

UniStorm包括一个外部系统来过渡CTS的天气着色器,当下雨或下雪时,允许你的地形被积雪和湿度遮挡。CTS(不包括)

二、简单了解UniStorm System的创建使用

将插件下载后直接导入即可。这时候选择Unity菜单项 Window—>UniStorm—>Create Weather System(创建一个UniStorm System组件 ) 即可,注意创建的组件不要改名,否则内置脚本会找不到。

扩展:Window—>UniStorm下的其他选项

Documentation(文档):介绍UniStorm的文档

UniStorm API:顾名思义,一些UniStorm APi接口文档

Report a Bug Or Request a Feature(反馈信息):用于向官方反馈Bug或问题的

选择UniStorm System可以在 Inspector面板看到Player&Camera、Time、Weather、Celestial、Set(最后一个看不到应该是写脚本的布局问题,它是设置面板) 五个选项卡,这里不做修改讲解,下面在细说这几个面板的作用。

在场景创建一个TransForm组件改名为Player 设置Tag标签为Player。要注意 player的Position位置要与Main Camera相机位置一致,这里暂时先不说原因后面会讲解,先这样做,了解一下基础效果使用。

运行后按下Esc出现天气菜单,Slider滚动条是用于控制日出日落,下拉列表是自带的天气效果,点击按钮进行天气过渡切换。

Slider效果:

下拉列表效果:(切换下雨效果为例子)

下拉列表下的效果对照表:

/*      插件天气对照表0   Clear                     //清除 万里无云        1   Mostly Clear               //晴时多云              2   Mostly Cloudy               //大部多云              3   Partly Cloudy               //局部多云;少云         4   Cloudy                     //阴天的       5   Lightning Bugs              //萤火虫6   Blowing Pollen             //吹花粉7   Blowing Leaves             //吹树叶8   Blowing Pine Needles       //吹松针9   Blowing Snow               //高吹雪,飞雪10  Foggy                        //有雾的11  Overcast                   //阴天的12  Hail                       //下冰雹13  Heavy Rain                 //大暴雨14  Rain                       //雨15  Light Rain                   //小雨16  Drizzle                     //下毛毛雨17  Heavy Snow                    //大雪18  Snow                        //雪19  Light Snow                   //小雪20  Thunderstorm                //雷雨21  Thunder Snow                //雷阵雨22  Dust Storm                 //尘暴23  Fire Rain                   //火雨24  Fire Storm                  //(原子爆炸等引起的)风暴性大火*/

下面就讲解一下 每个选项卡面板参数作用吧

三、UniStorm System选项卡面板

1.Player&Camera

设置渲染相机,player(天气生成的位置),控制天气菜单

1.Get Player at Runtime: 他的作用是代表你要选择用什么方式获取player和Camera组件,选择Enabled代表可以选择通过标签或者名称查找组件,选择Disable代表这两个组件要自己手动拖入

2.Get Player Method: 只有 Get Player at Runtime选项为Enable的情况下才会出现,这个表示你要使用Tag获取还是Name的方式获取组件

3.Player Tag和Camera Tag: 根据Get Player Method选项变换,表示要获取什么Tag或名称的组件

4.UniStorm Follows Player:选择改为Enable运行程序,当UniStorm System没有找到player或Camera组件时,他不会报空错误,直到你在场景中动态生成对应物体时,他才会找到并执行。

5.Use UniStorm Menu:是否开启按下快捷键显示菜单。

6.UniStorm Menu Key:Use UniStorm Menu 开启的时候,才会显示,用于选择按下哪个按键才会显示菜单,默认ESC键

2.Time Management 时间面板

控制年月日以及早上、白天、傍晚、晚上四个区间的声音播放

这个面板有点多,而且还分了好多子区域,我分开讲。

(1)Time Settings区域

Hour、Minute9:UniStorm开始的时间,分别控制小时、分钟,该时间会在运行中一直被更新(插件用以模拟日夜更替)

Time Flow: 控制该插件的时间流动(Enable的话分钟和小时数会一直增加)

Use Real-world Time:使用现实的时间。

Day Length: 白天的长度,设置为4表示该插件模拟一天的时长为4分钟

Night Length: 夜晚的长度,同上

(2) Data Setting

这个不多说了,就是年月日,上面时间跑完一天后下面天数会自动加一,如果选择使用现实时间,这个区域选项都会消失

(3)Time of Day Sounds Settings

Play During Precipitation:在降水天气类型期间是否播放UniStorm的时间声音

Time of Day Sounds Min触发一天中某个时间的声音所需的最短秒数

Time of Day Sounds Max:触发一天中某个时间的声音所需的最长秒数

Time of Day Sounds Volume:声音音量

Morning ~ Night Sounds:UniStorm将在早上、白天、傍晚和晚上播放的可能声音列表。这是随机播放的,取决于在一天中的最小和最大声音时间内设置的秒数。

这里讲讲Time of Day Sounds Min和Time of Day Sounds Max的使用,min和Max范围值都是0~60代表的是分钟,这里设置的是可以触发声音的范围,如果你设置min值为50,Max值为60。那么在0~49分钟这个区间是不会触发声音播放的(官网的描述太抽象了,我自己测出来的)。如果Min和Max都为0的话,区间也是0~60分钟。

区间时间 (时区为6小时)

0~5点:播放 Night Sounds(夜晚) 内的音频

6~11点:播放 Morning Sounds (早上)内的音频

12~17点:播放 Day Sounds (中午)内的音频

18~23点:播放 Evening Sounds (下午)内的音频

(4)Time of Day Music Settings

这个面板与上一个面板的区别是,这里设置的声音会一直播放,不受分钟区间影响

Time Of Day Music Delay:当声音播放完毕后等待N分钟后,再次播放

Time Of Day Music Volume:播放的声音大小

Morning ~ Night Sounds:UniStorm将在早上、白天、傍晚和晚上播放的可能声音列表。音乐是随机播放的

3.Weather Management 天气管理面板

“天气管理”选项卡允许您调整与天气和云相关的各种设置。其中包括UniStorm可以使用的天气类型、云设置、雾和云颜色以及闪电设置。

(1)Weather Settings

Weather Generation Type:控制UniStorm的天气是每小时生成还是每天生成。使用每日天气生成时,也会生成天气变化的小时数。

Weather Sounds Volume: 天气的声音音量(这个值我在测试时,发现已经运行程序后不可动态修改,只有在运行前设置好后才会有效果。)

Transition Speed: 控制UniStorm转换天气类型的速度

Cloud speed: 控制UniStorm程序云在天空中移动的速度。(不可动态修改,在程序运行前设置好后才会有效果)

Precipiation Odds:控制UniStorm全年降水的几率。 X代表日历月,Y代表几率。

Temperature Type:温度类型

Temperature Curve:控制UniStorm全年的温度。 X表示日历月份,Y表示温度

Temperature Fluctuation:控制UniStorm全天的温度波动。 X表示小时,Y表示温度波动。

Starting Weather Type:开始的天气类型

All Weather Types:所有可能的天气类型的列表,UniStorm将使用生成天气。 要创建一个新的天气类型,右键单击项目标签,然后转到创建>UniStorm>新天气类型。 当这个完成后,它将创建一个新的天气类型供您定制您想要的。 有关天气类型的更多信息,请参见创建自定义天气类型部分。

Fog Color:在非降水天气类型中控制雾颜色的渐变。 每个元素都是一天中下一个时间的过渡。

Fog Color(Stormy):在降水天气类型期间控制雾颜色的渐变。 每个元素都是一天中下一个时间的过渡。

Cloud Color:在非降水天气类型中,控制UniStorm云的基本颜色的渐变。 每个元素都是一天中下一个时间的过渡。

Cloud Color(Stormy):在降水天气类型中,控制UniStorm云的基本颜色的渐变。 每个元素都是一天中下一个时间的过渡

Cloud Light Color:在降水天气类型中,控制UniStorm云的基本颜色的渐变。 每个元素都是一天中下一个时间的过渡。

All Weather Types:中的天气是WeatherType类型的数据类,插件默认25种天气在UniStorm 3.0—>Weather Types文件夹下。如何创建一个天气请看第四节应 第1条 创建自定义天气

(2)Lightning Settings

Generation Distance:控制闪电可以在玩家周围产生的最大距离。

Min Lightning Seconds:控制闪电产生的最小秒数。

Max Lightning Seconds:控制闪电产生的最大秒数。

Min Lighting Intensity:控制要产生的闪电的最小光强度

Max Lightning Intensity:控制要产生的闪电的最大光强度

Detection Distance:控制UniStorm的闪电碰撞器的距离。 闪电半径越大,就越有可能击中物体而不是地面。

Lightning Strike Layers:控制UniStorm的程序闪电可以击中的层。

Lightning Fire Tags:一个标签列表,当被闪电击中时,将创建一个火粒子效果。

Ground Strike Odds:控制UniStorm的闪电击中地面或其他合适标签的物体的几率。

Lightning Strike Effect:闪电击中地面时产生的粒子效果。

Lightning Strike Fire:当闪电击中相应标签的物体时,会产生火的效果。

Lightning Strike Patterns:在闪电天气类型中UniStorm将使用的可能的闪电模式列表。

Thunder Sounds:在闪电天气类型中UniStorm将播放可能的雷声声音列表

这里我修改了一下闪电生成的频率和击中物体的概率 ,看一下效果:

4.Celestial Settings 天上的设置

设置降水非降水天气时,太阳、天空、赤道、环境等颜色渐变和太阳、月亮、大气层、星空等参数设置

(1)Sun Settings

Sun Color在非降水天气类型中,控制UniStorm太阳颜色的渐变。 每个元素都是一天中下一个时间的过渡。

Stormy Sun Color:在降水天气类型中,控制UniStorm太阳颜色的渐变。 每个元素都是一天中下一个时间的过渡。

Sun Title Angle:控制太阳的倾斜角度。

Sun Revolution:控制UniStorm太阳升起和落下的方向

Sun Intensity Curve:控制UniStorm的太阳强度。 X表示小时,Y表示强度

Sun Size Curve:控制UniStorm的太阳的大小。 X表示小时,Y表示大小

(2) Moon Settings

Moon Light Color:一个控制UniStorm地平线晚霞颜色的渐变。

Moon Tilt Angle:控制月球的倾斜角度

Moon Intensity Curve:控制联合风暴的月亮强度。 X表示小时,Y表示强度

Moon Size Curve:控制UniStorm的月亮大小。 X表示小时,Y表示大小。

Moon Phase Texture:一个月亮阶段纹理列表,UniStorm将使用,当创建UniStorm的月亮。 应用到列表中的每个纹理将被用作月亮阶段,并按照当前月亮阶段的顺序应用。 每个月相都有一个单独的光强度,以允许每个月相发出不同数量的光。

Current Moon Phase:通过调整滑块显示所有的月相。 当前月亮阶段也控制月亮阶段UniStorm将开始。

Moon Phase Color: 控制月亮的颜色

Moon Phase Brightness:控制所有月亮相位纹理的亮度。

(3) Atmosphere Settings

Hemisphere:控制UniStorm的季节是在北半球还是南半球计算。

Atmosphere Thickness:  修改大气层厚度

Ambient Sky Color:在非降水天气类型中控制环境天空颜色的渐变。 每个元素都是一天中下一个时间的过渡。

Stormy Ambient Sky Color:在降水天气类型期间控制环境天空颜色的渐变。 每个元素都是一天中下一个时间的过渡。

Ambient Equator Color:在非降水天气类型中控制环境赤道颜色的梯度。 每个元素都是一天中下一个时间的过渡。

Stormy Ambient Equator Color:在降水天气类型期间控制环境赤道颜色的梯度。 每个元素都是一天中下一个时间的过渡。

Ambient Ground Color:在非降水天气类型中控制环境底色的渐变。 每个元素都是一天中下一个时间的过渡。

Stormy Ambient Ground Color:在降水天气类型期间控制环境地面颜色的渐变。 每个元素都是一天中下一个时间的过渡。

Sky Color:天空的颜色。

Sky Tint Color:一个控制天空颜色的渐变,它控制UniStorm的天空盒的颜色。 每个元素都是一天中下一个时间的过渡。

Starlight Color:一个控制UniStorm星星颜色和透明度的渐变。 每个元素都是一天中下一个时间的过渡。

Star Speed:控制夜晚星星在天空中移动的速度。

Settings 设置面板

设置选项卡允许您控制各种全局的UniStorm设置。 目前,这里唯一可用的部分是配置文件管理。

Import Profile:从当前应用的UniStorm配置文件导入设置。 这将覆盖所有的UniStorm颜色值以及太阳和月亮强度曲线。

Export Profile:从您当前的UniStorm系统导出设置到一个UniStorm配置文件。 在按下导出设置按钮后,您将有选择在哪里保存您的UniStorm配置文件的选项。

在UniStorm下UniStorm Profiles文件夹中有默认配置文件

UniStorm Profile (Alien Planet) :外星球

UniStorm Profile (Black Nights):黑色的夜晚

UniStorm Profile (Darker Nights):黑暗的夜晚

UniStorm Profile (Intense Sunrises and Sunsets):强烈的日出和日落

UniStorm Profile (Post-Apocalyptic):末世启示录

UniStorm Profile (Standard):标准

四、创建自定义天气

(1)官方定义:

模块化天气听起来可能很复杂,但实际上,它让事情变得更简单,也更可定制。 模块化天气的工作原理是将天气类型存储在可脚本化的对象中。 这些可编写脚本的对象允许用户创建自定义天气类型。 沙尘暴、极光、冰雹、雷暴等都是可能发生的。 UniStorm可以使用多少种天气类型是没有限制的,最重要的是,他们允许用户使用自己的自定义粒子效果,设置,和每种天气类型的声音。 (注意:云剖面已经被添加到天气类型。 这方面的指南可以在这里找到)

模块化天气系统分为两类,降水天气类型和非降水天气类型。 当天气生成时,如果条件合适,比如温度,UniStorm会生成相应的天气。 这允许在保持主系统代码长度最小的同时进行最大程度的定制。

总结来说,就是天气被模块化了,可以更直观的修改设置我们需要的天气(如:沙尘暴、极光、冰雹、雷暴),而且可以使用自己定义的粒子效果和天气类型声音,天气系统被划分两类:降水天气类型和非降水天气类型。

(2)创建一个自定义天气类型。(右键点击文件夹,Create——>UniStorm——>New Weather Type)

(3)给天气命名Test Weather,天气面板 (这里也是 分区域讲解)

命名并编辑您新创建的天气类型的设置。 天气类型的名称将用于UniStorm的UI,如果它是启用的。 您将能够应用粒子效果,改变云覆盖,应用声音,改变雾的强度,以及更多。 一种天气类型也有只在特定季节或温度下产生的条件。 如果你使用了一个条件,UniStorm需要满足这个条件才能正确生成它。 如果不满足,另一种具有适当条件的天气类型将在其位置生成。

Info 区域

Weather Type Name:天气类型名称(这个名称将用于菜单的UI名称)

Customize Weather Icon:是否可以自定义天气图标

 Settings 区域

Precipitation Weather Type?:控制该天气类型是否为降水天气类型。降水天气类型是指雨、雪、雨夹雪、冰雹、雾气等天气类型。降水天气类型也会有太阳的颜色改变,云变暗,雾的颜色改变,所有根据UniStorm编辑器中的暴风雨的颜色设置。注意:粒子效果不需要使用。

Sun Intensity:控制此天气下UniStorm的太阳强度。

Moon Intensity:控制此天气下UniStorm的月亮强度。

Fog Desnity:控制UniStorm的雾密度。

Fog Speed Multipler:允许个别天气类型控制雾快或慢,如果需要。

Wind Intensity:控制UniStorm的风区强度。

Cloud Level:控制此天气下UniStorm的云层覆盖的级别。

Shader Control:控制UniStorm的全球天气着色器,允许使用UniStorm/全球天气着色器的表面上的动态雪和湿度。

Effects 区域 

Use Weather Effect:为该天气类型设置天气粒子效果。

Use Weather Sound:为该天气类型设置天气声音。

 Condeitions 区域

Seasonal Condition:控制该天气类型允许在哪个季节生成。 如果您希望您的天气类型在所有季节可用,您可以选择“所有”选项。

Temperature Condition:控制该天气类型是发生在冰点以上还是以下,例如下雨还是下雪。

Special Weather Condition:控制此天气类型是否特殊。 特殊的天气条件会阻止UniStorm的天气生成器生成天气类型,并且只能通过自定义事件或程序调用。 这对于玩家事件或任务来说非常有用。

五、API调用

1.Weather 天气

//1.改变UniStorm的天气,无论条件,与天气类型参数的过渡速度。
UniStorm.UniStormManager.Instance.ChangeWeatherWithTransition(UniStorm.WeatherType weatherType);//2.立即改变UniStorm的天气,无论条件,天气类型参数。
UniStorm.UniStormManager.Instance.ChangeWeatherInstantly(WeatherType weatherType);//3.生成一个随机的天气类型,无论条件,从UniStorm的所有天气类型列表
UniStorm.UniStormManager.Instance.RandomWeather();//4.获取当前天气类型的名称
string CurrentWeatherTypeName =
UniStorm.UniStormSystem.Instance.CurrentWeatherType.WeatherTypeName;//5.获取预报天气类型的名称string WeatherForecastName = UniStorm.UniStormManager.Instance.GetWeatherForecastName();//6.获取预报天气将改变的小时,并设置天气类型的名称  int WeatherForecastHour = UniStorm.UniStormManager.Instance.GetWeatherForecastHour();//7.根据ActiveState bool禁用或启用所有UniStorm粒子效果,但不影响它们的发射量。
UniStorm.UniStormManager.Instance.ChangeWeatherEffectsState(bool ActiveState);//8.禁用或启用所有的UniStorm天气声音,取决于ActiveState bool,但不影响其当前音量。
UniStorm.UniStormManager.Instance.ChangeWeatherSoundsState(bool ActiveState);//9.获取当前的UniStorm温度
int CurrentTemperature = UniStorm.UniStormSystem.Instance.Temperature;

2. Time  时间

//1.获取当前的UniStorm分钟
int CurrentMinute = UniStorm.UniStormSystem.Instance.Minute;//2.获取当前的UniStorm小时
int CurrentHour = UniStorm.UniStormSystem.Instance.Hour;//3.修改UniStorm的日期
UniStorm.UniStormManager.Instance.SetDate(int Year, int Month, int Day);//4.修改UniStorm的时间日期
UniStorm.UniStormManager.Instance.SetTime (int Hour, int Minute);//5.获取当前时间的状态
UniStorm.UniStormSystem.CurrentTimeOfDayEnum CurrentTimeOfDayState = UniStorm.UniStormSystem.Instance.CurrentTimeOfDay;//6.设置UniStorm的天数长度,以分钟为单位
UniStorm.UniStormManager.Instance.SetDayLength(int MinuteLength);//7.设置UniStorm夜晚的长度,以分钟为单位
UniStorm.UniStormManager.Instance.SetNightLength(int MinuteLength);//8.获取当前的UniStorm星期几
System.DayOfWeek CurrentDayOfWeek =  UniStorm.UniStormManager.Instance.GetDate().DayOfWeek;//9.获取当前的UniStorm日期
System.DayOfWeek CurrentDayOfWeek =  UniStorm.UniStormManager.Instance.GetDate().DayOfWeek;

3. Volume 音量

//1.设置UniStorm的音乐音量值,从0(完全静音)到1(全音量)。
UniStorm.UniStormManager.Instance.SetMusicVolume(float Volume);//2.设置UniStorm的环境音量值从0(完全静音)到1(全音量)。
UniStorm.UniStormManager.Instance.SetAmbienceVolume(float Volume);//3.将UniStorm的天气音量设置为0(全静音)到1(全音量)。
UniStorm.UniStormManager.Instance.SetWeatherVolume(float Volume);

4. Seasons 季节

//获取当前季节
UniStorm.UniStormSystem.CurrentSeasonEnum currentSeason = UniStorm.UniStormSystem.Instance.CurrentSeason;

5. System 修改玩家和玩家相机

//如果需要更改或更新,将玩家转换和玩家摄像机更改为UniStorm。
UniStorm.UniStormManager.Instance.ChangePlayerComponents(Transform PlayerTransform, Camera CameraSource);

6. Events 事件

建议在启动时分配事件,不要在更新函数中使用。  //1.为OnHourChangeEvent设置一个可以每小时调用函数的事件。
UniStorm.UniStormSystem.Instance.OnHourChangeEvent.AddListener(() => YourFunctionEvent());//2.为OnDayChangeEvent设置一个可以每天调用函数的事件。
UniStorm.UniStormSystem.Instance.OnDayChangeEvent.AddListener(() => YourFunctionEvent());//3.为OnMonthChangeEvent设置一个可以每月调用函数的事件
UniStorm.UniStormSystem.Instance.OnMonthChangeEvent.AddListener(() => YourFunctionEvent());//4.为每年可以调用函数的OnYearChangeEvent设置一个事件
UniStorm.UniStormSystem.Instance.OnYearChangeEvent.AddListener(() => YourFunctionEvent());//5.为OnWeatherChangeEvent设置一个事件,该事件可以在每次天气变化时调用函数
UniStorm.UniStormSystem.Instance.OnWeatherChangeEvent.AddListener(() => YourFunctionEvent());

7. Other 其他

//改变UniStorm的月相颜色。 更新的颜色将应用在中午时,UniStorm的月亮更新。
UniStorm.UniStormManager.Instance.ChangeMoonPhaseColor(Color MoonPhaseColor)

六、扩展应用

1.制作一个自己的天气

了解以上参数后我们开始自己做一个天气吧,要求:阴天、下雪、下火雨、会打雷,雷可以劈中场景Tag为Cube的物体 并且天气效果背景是小鸟的叫声。(哈哈 可怕的天气,为了实验效果,拼了~~)

首先创建一个天气类型的数据文件,配置我们的天气。

配置天气背景音乐(上面没有截到图,这里单独拿出来说)。

然后将这个设置好的天气拖到Weather面板的 All weather Types列表中

新建三个Cube,将这三个cube层级设置为Cube,Tag标签设置为Cube如下

设置UniStorm System的Weather的Lightning Settings区域

禁止其他时区的音乐播放,不禁止的话  我们背景小鸟音乐容易被覆盖,不容易听到。

好的 接下来运行看效果:

2. unity使用UniStorm插件根据当前城市动态修改天气效果

https://blog.csdn.net/qq_42345116/article/details/122652578

Unity插件之天气系统UniStorm相关推荐

  1. 【小沐学Unity3d】Unity插件之天气系统UniStorm

    文章目录 1.简介 1.1 描述 1.2 兼容性 1.3 价格 1.4 特点 1.5 示例 3.安装 3.1 新建Unity项目 3.2 安装插件UniStorm 3.3 介绍UniStorm工具栏 ...

  2. Unity插件之NGUI学习(4)—— 创建UI2DSprite动画

    创建一个新的Scene.并按 Unity插件之NGUI学习(2)创建UI Root,并在UI Root的Camera下创建一个Panel. 然后在选中Panel,在菜单中选择NGUI->Crea ...

  3. Unity插件-NGUI使用教程

    Unity插件-NGUI使用教程 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 NGUI 一款强大 ...

  4. Unity插件之NGUI学习(8)—— Table和NGUI尺寸转换为世界坐标系尺寸

    依据 Unity插件之NGUI学习(2),创建一个UI Root,在UI Root下创建一个Texture作为背景图,并设置图片,在Wiget下调整大小:然后在UI Root下再创建一个Panel. ...

  5. UNITY插件信息收集

    UNITY插件信息收集 2018.8.7 UNITY超级优化神器 : Amplify Impostors posted on 2018-08-07 20:53 时空观察者9号 阅读(...) 评论(. ...

  6. AR+LBS街景实景红包PokemonGo游戏捉妖夺宝营销解决方案定制开发暨百度高德地图Unity插件SDK

    AR+LBS街景实景红包PokemonGo游戏捉妖夺宝营销解决方案定制开发暨百度高德地图Unity插件SDK 作者 komstone https://blog.csdn.net/komstone/ar ...

  7. Unity接入穿山甲广告(使用unity插件SDK接入)看这一篇就够了

    自己做的小游戏需要接广告,之前尝试过UnityAds和AdMob,但是都有点小问题.UnityAds对国内本土支持不好,Banner广告经常没有内容.Admob基本上都要对接到googlePlay,国 ...

  8. unityar自动识别人脸_三款Unity插件带您玩转人脸识别与模拟

    原标题:三款Unity插件带您玩转人脸识别与模拟 若想让游戏或电影中的虚拟角色表现得更加真实,面部表情是至关重要的.人脸识别技术则借助真人表演来为虚拟角色赋予丰富的表情与面部动作,小至皱眉带动眼部肌肉 ...

  9. 利用Unity插件Anima2D创建2D骨骼动画

    利用Unity插件Anima2D创建2D骨骼动画 创建步骤 导入Anima2D插件 准备2D素材 配置2D骨骼 对2D角色应用IK(反向动力学) 利用Animation创建2D人物动画 创建步骤 导入 ...

最新文章

  1. 我是越来越喜欢做产品了
  2. 多重继承、虚继承与虚基类
  3. python3.6.8卸载_CentOS7下安装python3.6.8的教程详解
  4. unbuntu cmake安装mysql_ubuntu下编译安装mysql5.5
  5. [导入]值得收藏经典民间偏方
  6. sketchup草图家具拆单软件 衣柜橱柜拆单 SU 全屋定制拆单 有屋软件 下料机
  7. 2021中青杯数学建模A题
  8. JavaScript 事件
  9. 海德汉圆光栅编码器RON786C/RON886C/RON785C/RPN886/RON285/RON287/RON275参数针脚定义
  10. 条件格式实现ABC分析
  11. csol c语言运行错误,CSOL非常卡之控制台优化.doc
  12. C# 添加PDF页眉/页脚
  13. 快速实现Thread Mesh组网详解
  14. CCS3.3 新建工程遇到的问题
  15. 2019-2022年中国定期存款基准利率走势(附三个月定期、半年定期、一年定期、二年定期及三年定期存款基准利率)[图]
  16. 漫步数学分析二十三——级数的积分与微分
  17. DenseFuse: A Fusion Approach to Infrared and Visible Images
  18. 开源一个中国象棋 alpha zero 程序
  19. (十六)【模电】(放大电路中的反馈)反馈的概念及判断
  20. 专注云原生落地,星汉未来成为开源 GitOps 产业联盟会员

热门文章

  1. Mac新手必备技巧之Excel不可错过的16个实用快捷键
  2. DECIMAL Data Type Characteristics
  3. 使用MMX/SSE汇编指令集优化视频开发
  4. 手机怎么把php转换mp3,如何使用MP3转换器转换音频格式
  5. c语言trim库函数用法,c语言编写trim 函数
  6. WebDav的几种应用方法
  7. java 防渗透_火焰 对于 () 相当于墨汁对于()A.冰冷 洁白B.温暖 黝黑C.氧气 砚台D.光明 黑暗...
  8. python的图导入origin,导入Numpy或OriginPro和Python时出现问题
  9. 什么是机器语言,汇编语言,高级语言?C 语言有什么特点(优点)?
  10. 线段树开4N空间证明