Unity插件之天气系统UniStorm 您所在的位置:网站首页 天气插件效果图设计绘制 Unity插件之天气系统UniStorm

Unity插件之天气系统UniStorm

2023-07-03 08:52| 来源: 网络整理| 查看: 265

一、前言 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:控制夜晚星星在天空中移动的速度。  

 5 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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有