Unity3D開發:制作一個功能完整的炮臺
制作炮臺的旋轉
大家知道,炮臺需要向四周不同的角度發射炮彈,這就需要我們將炮臺設置成為會旋轉的物體,接下來我們就一起制作一個會旋轉的炮臺。
***步:給炮臺的炮筒添加旋轉函數。
給炮臺的炮筒部分添加一個旋轉函數,使得炮臺隨著鼠標在X方向上的移動而移動。在Project【項目文件欄】中右鍵——> ——>
新建一個JS函數,并按F2將其更名為“TurretRotate”,然后輸入如下代碼。
點選場景面板中的炮塔,找到炮塔上半部分所對應的對象,如圖11.1所示:
圖11.1
接著將剛才的 文件拖拽給這個對象。
第二步:設置攝像機跟隨。
選中攝像機對象“Camera”,點選菜單欄中的 ——>
——>
,為攝像機添加一個平滑的跟隨代碼,但這里并沒有設置跟隨對象。
繼續選中攝像機對象,在它的屬性面板中找到“Smooth Follow(Script)”卷展欄下的“Target”,然后將炮臺上半身對象拖拽給它。如圖11.2所示:
圖11.2
第三步:運行游戲,觀察效果。
點擊測試按鈕 ,試著移動下鼠標看看炮塔的旋轉效果。如圖11.3所示:
圖11.3
攝像機隨著炮塔的旋轉而旋轉,而G.U.I圖標和G.U.I文字一直在畫面的左上角不動,效果很不錯。
注:這里需要注意的問題一個是攝像機的動作容易發生沖突,所以在設置的時候,需要注意將不使用的攝像機動作關閉。還有一點是模型制作完成導出的時候,需要注意將模型的坐標軸設置好,否則在腳本執行的時候,會出現攝像機不能與炮口方向一致的情況。
制作炮彈的射擊和爆炸效果
制作完了炮臺的旋轉,接下來我們繼續制作炮彈相關的效果。
***步:創建炮彈。
點擊菜單欄的 ——>
——>
,創建一個球體模型,并利用場景調整工具將其調整到和炮口差不多的大小。如圖12.1所示:
圖12.1
第二步:給炮彈添加貼圖。
找兩張金屬材質的貼圖,***張為基本RGB貼圖,第二張為普通顯示的貼圖,如圖12.2所示:
圖12.2
這樣做是為了一會在給物體賦予材質時,讓它有立體的感覺。您也可以只給物體照一張貼圖材質。找到想要的材質貼圖之后,將它們拷貝到項目文件夾中的“Assets”【資源】文件夾內。
接下來選中剛才的球體模型,在它的屬性面板中找到材質球下拉選項框。將他的渲染模式改為“Bumped Diffuse”,緊接著將深色的材質貼圖拖放給***個材質框,將淺色的材質貼圖拖放給第二個材質框。如圖12.3所示:
圖12.3
于是我們就會得到一個帶有材質效果的炮彈了。
第三步:設置炮彈的發射效果。
在菜單欄中點選 ——>
——>
,創建一個預制類對象,并按下F2鍵將它的名字改為“Shot”,然后將球體模型拖入到預制對象中,并剔除場景面板中的炮彈模型。
但是這時的球體模型僅僅是在外觀上有了炮彈的樣子,我們還得讓它具有炮彈一樣的物體特性。接著在菜單欄中點選 ——>
——>
,為炮彈添加一個剛體屬性。
第四步:設置炮彈的發射起點。
在菜單欄中點選 ——>
,創建一個空對象放置在炮口,作為一會炮彈發射的起始點。按下F2將其更名為“FirePoint“。然后在Hierarchy【層次清單欄】中,把“FirePoint“拖拽到炮塔上半部分的旋轉對象中去,這樣可以使得它和炮塔一起旋轉。
第五步:為炮彈創建發射函數。
在Project【項目文件欄】中右鍵——> ——>
新建一個JS函數,并按F2將其更名為“Open Fire”,然后輸入如下代碼。
輸入完畢之后,將該代碼拖拽給Hierarchy【層次清單欄】中的發射對象“FirePoint“,然后我們會發現在屬性面板中的“FirePoint “接口和”Bullet“接口對象為空。所以我們必須得把發射點對象“FirePoint“和炮彈對象”Shot“拖拽到兩個對應的接口上。如圖12.4 所示:
圖12.4
第六步:添加火花效果。
接下來我們按下測試按鈕 看看效果。大家會發現朝前發射的炮彈再碰到山體后,都被彈了起來。所以說此時我們制作的炮彈還只是一個球體,并不會爆炸。接下來我們還要繼續作出炮彈的爆炸效果。
在Project【項目文件欄】的查找框中輸入“Fireworks“關鍵字,將查找到的 拖拽到場景面板,您會看到一個動態的實時爆炸火花。如圖12.5所示:
圖12.5
接著確保該對象為選中狀態,到它的屬性面板中調節它的各個屬性值,直到達到您想要的效果為止。如圖12.6所示:
圖12.6
接下來在菜單欄中點選 ——>
——>
,創建一個預制類對象,并按下F2鍵將它的名字改為“BoomPrefab”,然后將這個爆炸火花拖拽到預制對象中去,并刪除場景面板中的火花。
第七步:為炮彈創建爆炸效果。
添加一段JavaScript代碼,取名叫做“Boom“,這段代碼的主要作用是給炮彈添加一個碰撞檢測。如果炮彈碰撞到任何物體,就讓炮彈在場景中消失,并在炮彈碰撞消失的地點加載爆炸火花的預制對象。具體代碼如下:
輸入完畢之后保存該代碼,并把這段代碼拖拽給炮彈預制對象“Shot“。然后點選預制對象”Shot“,在它的屬性面板中找到剛才拖拽給它的”Boom “卷展欄,再將爆炸火花預制對象”BoomPrefab“拖拽給它的接口”BoomFire“。運行游戲,看一下效果。如圖12.7所示:
圖12.7
第八步:設置爆炸效果的消失。
剛才一系列的設置之后,大家已經能夠很明顯的看到爆炸之后的火花效果,但它會一直在那里閃爍,并不會消失。這嚴重違背了現實生活的景象,所以我們還得為它加上一段時間限定消失代碼。
繼續創建JavaScript代碼,更名為“desBoom“,具體代碼見下:
輸入完畢之后,將這段代碼拖拽給爆炸火花預制對象“BoomPrefab“。再次運行程序,我們會發現火花在爆炸產生2秒后就自動消失了。
第九步:為爆炸效果添加音效。
完成了畫面效果的制作,我們還需要給游戲添加上非常重要的一個元素——聲音。其實這個過程非常簡單,只需要在網絡上搜尋一個您認為合適的聲音,并將這段聲 音文件添加入項目文件夾的“Assets“【資源】文件夾內。然后在Project【項目文件欄】中,將其拖拽給爆炸火花的預制對象 “BoomPrefab“,這樣聲音文件就可以和爆炸火花同時產生了。
如果您覺得聲音需要做適當的調節,例如“是否在預制對象產生時播放?“,”聲音是否循環播放“等這些問題。我們都可以在選中預制對象后,在它的屬性面板中找到聲音的調節卷展欄,對它一一進行調節。
以上就是這款強大的跨平臺3D游戲開發工具Unity3D的基礎入門教程了。相信大家看過之后多加練習,一定能夠制作出非常優秀的3D游戲,也希望本教程能夠幫助大家較快的上手Unity3D,謝謝!