现在支持URP。HDRP支持目前正在开发中。
UniStorm是AAA动态天空、天气、云阴影和程序体积云的最终解决方案。UniStorm有超过100个可定制的选项,以帮助使环境的生活。听取用户的反馈有助于使
UniStorm的用户友好和易于使用。UniStorm非常强大,可以让你调整天空中的每个组件。
你的想象力是有限的!
这里总结翻译的是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(不包括)
将插件下载后直接导入即可。这时候选择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 //(原子爆炸等引起的)风暴性大火
*/
下面就讲解一下 每个选项卡面板参数作用吧
设置渲染相机,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键
控制年月日以及早上、白天、傍晚、晚上四个区间的声音播放
这个面板有点多,而且还分了好多子区域,我分开讲。
Hour、Minute9:UniStorm开始的时间,分别控制小时、分钟,该时间会在运行中一直被更新(插件用以模拟日夜更替)
Time Flow: 控制该插件的时间流动(Enable的话分钟和小时数会一直增加)
Use Real-world Time:使用现实的时间。
Day Length: 白天的长度,设置为4表示该插件模拟一天的时长为4分钟
Night Length: 夜晚的长度,同上
这个不多说了,就是年月日,上面时间跑完一天后下面天数会自动加一,如果选择使用现实时间,这个区域选项都会消失
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 (下午)内的音频
这个面板与上一个面板的区别是,这里设置的声音会一直播放,不受分钟区间影响
Time Of Day Music Delay:当声音播放完毕后等待N分钟后,再次播放
Time Of Day Music Volume:播放的声音大小
Morning ~ Night Sounds:UniStorm将在早上、白天、傍晚和晚上播放的可能声音列表。音乐是随机播放的
“天气管理”选项卡允许您调整与天气和云相关的各种设置。其中包括UniStorm可以使用的天气类型、云设置、雾和云颜色以及闪电设置。
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条 创建自定义天气
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将播放可能的雷声声音列表
这里我修改了一下闪电生成的频率和击中物体的概率 ,看一下效果:
设置降水非降水天气时,太阳、天空、赤道、环境等颜色渐变和太阳、月亮、大气层、星空等参数设置
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表示大小
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:控制所有月亮相位纹理的亮度。
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:控制夜晚星星在天空中移动的速度。
设置选项卡允许您控制各种全局的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:为该天气类型设置天气声音。
Seasonal Condition:控制该天气类型允许在哪个季节生成。 如果您希望您的天气类型在所有季节可用,您可以选择“所有”选项。
Temperature Condition:控制该天气类型是发生在冰点以上还是以下,例如下雨还是下雪。
Special Weather Condition:控制此天气类型是否特殊。 特殊的天气条件会阻止UniStorm的天气生成器生成天气类型,并且只能通过自定义事件或程序调用。 这对于玩家事件或任务来说非常有用。
//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;
//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;
//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);
//获取当前季节
UniStorm.UniStormSystem.CurrentSeasonEnum currentSeason = UniStorm.UniStormSystem.Instance.CurrentSeason;
//如果需要更改或更新,将玩家转换和玩家摄像机更改为UniStorm。
UniStorm.UniStormManager.Instance.ChangePlayerComponents(Transform PlayerTransform, Camera CameraSource);
建议在启动时分配事件,不要在更新函数中使用。
//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());
//改变UniStorm的月相颜色。 更新的颜色将应用在中午时,UniStorm的月亮更新。
UniStorm.UniStormManager.Instance.ChangeMoonPhaseColor(Color MoonPhaseColor)
了解以上参数后我们开始自己做一个天气吧,要求:阴天、下雪、下火雨、会打雷,雷可以劈中场景Tag为Cube的物体 并且天气效果背景是小鸟的叫声。(哈哈 可怕的天气,为了实验效果,拼了~~)
首先创建一个天气类型的数据文件,配置我们的天气。
配置天气背景音乐(上面没有截到图,这里单独拿出来说)。
然后将这个设置好的天气拖到Weather面板的 All weather Types列表中
新建三个Cube,将这三个cube层级设置为Cube,Tag标签设置为Cube如下
设置UniStorm System的Weather的Lightning Settings区域
禁止其他时区的音乐播放,不禁止的话 我们背景小鸟音乐容易被覆盖,不容易听到。
好的 接下来运行看效果:
https://blog.csdn.net/qq_42345116/article/details/122652578