設計火勢控制腳本(為VR滅火功能做前期準備)
由于unity的粒子系統Particle System我并不擅長,所以我用的火焰、煙霧粒子特效和一些音效都是從網上找的,并不是自己制作,只是做了一些修改,畢竟從頭創建一個粒子效果太費時間了,可以根據自己的需要從網上找,或者從Unity自帶的資源商店“Asset Store”里下載使用,我這里用的就是Unity Particle Pack5.x中的一部分,里面包含了大部分粒子特效,稍稍修改豐富一下就可以用的自己的專案中了,或者需要我使用的資源的話可以留言或私信我,

好了,開始正題:
匯入火焰和煙霧粒子特效、火焰燃燒音效
將粒子特效資源匯入專案中,找到火焰預制體拖入場景中,做微調:

將不需要的物體隱藏掉,布置好火源位置,“Fire”物件的“Box Collider”組件是將來實作滅火功能的要素,用于滅火器噴射粒子的碰撞,適當調整box collider的厚度,設定mesh renderer為非激活狀態:

添加火焰音效:直接在“fire”物件上添加組件“Audio Source”把音頻檔案拖入,將“Play on awake”(自動播放)和“Loop(回圈)”設定為"true"(勾選),將“spatial blend”(空間混合)設定為1使聲音呈現完全的3D效果,將“3D sound setting(三維聲音設定)”中的"Max distance"調小,設定40.距離火源40米以外無法聽到著火的聲音,進入40米的范圍后,離火源越近火的聲音越大,自己設定一個比較合理的值,用來模擬聲音的范圍,視實際情況而定吧

火勢控制腳本的設計思路
實際情況中,火應該是受到滅火措施后逐漸熄滅的,所以定義一個生命值上限和一個生命值表示火勢大小,定義一個熄滅系數和一個恢復系數,放在Update每幀計算出最新的生命值,根據生命值更新火勢,賦值給火粒子系統,改變它的transform.localScale,為1時火最大,為0時火熄滅;定義一個可以修改滅火系數的公開函式,給后期滅火腳本呼叫,
代碼實作




代碼注釋很明白了吧,就不一一解釋了,
將腳本掛載到fire物件上,賦值,運行調整熄滅系數的值大于恢復系數,可以看到火勢變小到熄滅的程序:



初步完成了火勢控制的功能了,后面就是VR手柄拾取滅火器滅火了…
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/276697.html
標籤:其他
上一篇:Unity游戲存盤(一)
