Unity插件之天气系统UniStorm
一、前言
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
總結
以上是生活随笔為你收集整理的Unity插件之天气系统UniStorm的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 海南实现旅游总收入1.06亿元人民币
- 下一篇: mathtype7.4安装
