Unity3D開(kāi)發(fā):制作一個(gè)功能完整的炮臺(tái)
制作炮臺(tái)的旋轉(zhuǎn)
大家知道,炮臺(tái)需要向四周不同的角度發(fā)射炮彈,這就需要我們將炮臺(tái)設(shè)置成為會(huì)旋轉(zhuǎn)的物體,接下來(lái)我們就一起制作一個(gè)會(huì)旋轉(zhuǎn)的炮臺(tái)。
***步:給炮臺(tái)的炮筒添加旋轉(zhuǎn)函數(shù)。
給炮臺(tái)的炮筒部分添加一個(gè)旋轉(zhuǎn)函數(shù),使得炮臺(tái)隨著鼠標(biāo)在X方向上的移動(dòng)而移動(dòng)。在Project【項(xiàng)目文件欄】中右鍵——> 
 ——> 
 新建一個(gè)JS函數(shù),并按F2將其更名為“TurretRotate”,然后輸入如下代碼。

點(diǎn)選場(chǎng)景面板中的炮塔,找到炮塔上半部分所對(duì)應(yīng)的對(duì)象,如圖11.1所示:

圖11.1
接著將剛才的 
 文件拖拽給這個(gè)對(duì)象。
第二步:設(shè)置攝像機(jī)跟隨。
選中攝像機(jī)對(duì)象“Camera”,點(diǎn)選菜單欄中的 
 ——> 
 ——> 
 ,為攝像機(jī)添加一個(gè)平滑的跟隨代碼,但這里并沒(méi)有設(shè)置跟隨對(duì)象。
繼續(xù)選中攝像機(jī)對(duì)象,在它的屬性面板中找到“Smooth Follow(Script)”卷展欄下的“Target”,然后將炮臺(tái)上半身對(duì)象拖拽給它。如圖11.2所示: 
圖11.2
第三步:運(yùn)行游戲,觀察效果。
點(diǎn)擊測(cè)試按鈕 
 ,試著移動(dòng)下鼠標(biāo)看看炮塔的旋轉(zhuǎn)效果。如圖11.3所示:

圖11.3
攝像機(jī)隨著炮塔的旋轉(zhuǎn)而旋轉(zhuǎn),而G.U.I圖標(biāo)和G.U.I文字一直在畫(huà)面的左上角不動(dòng),效果很不錯(cuò)。
注:這里需要注意的問(wèn)題一個(gè)是攝像機(jī)的動(dòng)作容易發(fā)生沖突,所以在設(shè)置的時(shí)候,需要注意將不使用的攝像機(jī)動(dòng)作關(guān)閉。還有一點(diǎn)是模型制作完成導(dǎo)出的時(shí)候,需要注意將模型的坐標(biāo)軸設(shè)置好,否則在腳本執(zhí)行的時(shí)候,會(huì)出現(xiàn)攝像機(jī)不能與炮口方向一致的情況。
制作炮彈的射擊和爆炸效果
制作完了炮臺(tái)的旋轉(zhuǎn),接下來(lái)我們繼續(xù)制作炮彈相關(guān)的效果。
***步:創(chuàng)建炮彈。
點(diǎn)擊菜單欄的 
 ——> 
 ——> 
 ,創(chuàng)建一個(gè)球體模型,并利用場(chǎng)景調(diào)整工具將其調(diào)整到和炮口差不多的大小。如圖12.1所示:

圖12.1
第二步:給炮彈添加貼圖。
找兩張金屬材質(zhì)的貼圖,***張為基本RGB貼圖,第二張為普通顯示的貼圖,如圖12.2所示:

圖12.2
這樣做是為了一會(huì)在給物體賦予材質(zhì)時(shí),讓它有立體的感覺(jué)。您也可以只給物體照一張貼圖材質(zhì)。找到想要的材質(zhì)貼圖之后,將它們拷貝到項(xiàng)目文件夾中的“Assets”【資源】文件夾內(nèi)。
接下來(lái)選中剛才的球體模型,在它的屬性面板中找到材質(zhì)球下拉選項(xiàng)框。將他的渲染模式改為“Bumped Diffuse”,緊接著將深色的材質(zhì)貼圖拖放給***個(gè)材質(zhì)框,將淺色的材質(zhì)貼圖拖放給第二個(gè)材質(zhì)框。如圖12.3所示:

圖12.3
于是我們就會(huì)得到一個(gè)帶有材質(zhì)效果的炮彈了。
第三步:設(shè)置炮彈的發(fā)射效果。
在菜單欄中點(diǎn)選 
 ——> 
 ——> 
 ,創(chuàng)建一個(gè)預(yù)制類對(duì)象,并按下F2鍵將它的名字改為“Shot”,然后將球體模型拖入到預(yù)制對(duì)象中,并剔除場(chǎng)景面板中的炮彈模型。
但是這時(shí)的球體模型僅僅是在外觀上有了炮彈的樣子,我們還得讓它具有炮彈一樣的物體特性。接著在菜單欄中點(diǎn)選 
 ——> 
 ——> 
 ,為炮彈添加一個(gè)剛體屬性。
第四步:設(shè)置炮彈的發(fā)射起點(diǎn)。
在菜單欄中點(diǎn)選 
 ——> 
 ,創(chuàng)建一個(gè)空對(duì)象放置在炮口,作為一會(huì)炮彈發(fā)射的起始點(diǎn)。按下F2將其更名為“FirePoint“。然后在Hierarchy【層次清單欄】中,把“FirePoint“拖拽到炮塔上半部分的旋轉(zhuǎn)對(duì)象中去,這樣可以使得它和炮塔一起旋轉(zhuǎn)。
第五步:為炮彈創(chuàng)建發(fā)射函數(shù)。
在Project【項(xiàng)目文件欄】中右鍵——> 
 ——> 
 新建一個(gè)JS函數(shù),并按F2將其更名為“Open Fire”,然后輸入如下代碼。

輸入完畢之后,將該代碼拖拽給Hierarchy【層次清單欄】中的發(fā)射對(duì)象“FirePoint“,然后我們會(huì)發(fā)現(xiàn)在屬性面板中的“FirePoint “接口和”Bullet“接口對(duì)象為空。所以我們必須得把發(fā)射點(diǎn)對(duì)象“FirePoint“和炮彈對(duì)象”Shot“拖拽到兩個(gè)對(duì)應(yīng)的接口上。如圖12.4 所示:

圖12.4
第六步:添加火花效果。
接下來(lái)我們按下測(cè)試按鈕 
 看看效果。大家會(huì)發(fā)現(xiàn)朝前發(fā)射的炮彈再碰到山體后,都被彈了起來(lái)。所以說(shuō)此時(shí)我們制作的炮彈還只是一個(gè)球體,并不會(huì)爆炸。接下來(lái)我們還要繼續(xù)作出炮彈的爆炸效果。
在Project【項(xiàng)目文件欄】的查找框中輸入“Fireworks“關(guān)鍵字,將查找到的 
 拖拽到場(chǎng)景面板,您會(huì)看到一個(gè)動(dòng)態(tài)的實(shí)時(shí)爆炸火花。如圖12.5所示:

圖12.5
接著確保該對(duì)象為選中狀態(tài),到它的屬性面板中調(diào)節(jié)它的各個(gè)屬性值,直到達(dá)到您想要的效果為止。如圖12.6所示:

圖12.6
接下來(lái)在菜單欄中點(diǎn)選 
 ——> 
 ——> 
 ,創(chuàng)建一個(gè)預(yù)制類對(duì)象,并按下F2鍵將它的名字改為“BoomPrefab”,然后將這個(gè)爆炸火花拖拽到預(yù)制對(duì)象中去,并刪除場(chǎng)景面板中的火花。
第七步:為炮彈創(chuàng)建爆炸效果。
添加一段JavaScript代碼,取名叫做“Boom“,這段代碼的主要作用是給炮彈添加一個(gè)碰撞檢測(cè)。如果炮彈碰撞到任何物體,就讓炮彈在場(chǎng)景中消失,并在炮彈碰撞消失的地點(diǎn)加載爆炸火花的預(yù)制對(duì)象。具體代碼如下:

輸入完畢之后保存該代碼,并把這段代碼拖拽給炮彈預(yù)制對(duì)象“Shot“。然后點(diǎn)選預(yù)制對(duì)象”Shot“,在它的屬性面板中找到剛才拖拽給它的”Boom “卷展欄,再將爆炸火花預(yù)制對(duì)象”BoomPrefab“拖拽給它的接口”BoomFire“。運(yùn)行游戲,看一下效果。如圖12.7所示:

圖12.7
第八步:設(shè)置爆炸效果的消失。
剛才一系列的設(shè)置之后,大家已經(jīng)能夠很明顯的看到爆炸之后的火花效果,但它會(huì)一直在那里閃爍,并不會(huì)消失。這嚴(yán)重違背了現(xiàn)實(shí)生活的景象,所以我們還得為它加上一段時(shí)間限定消失代碼。
繼續(xù)創(chuàng)建JavaScript代碼,更名為“desBoom“,具體代碼見(jiàn)下:

輸入完畢之后,將這段代碼拖拽給爆炸火花預(yù)制對(duì)象“BoomPrefab“。再次運(yùn)行程序,我們會(huì)發(fā)現(xiàn)火花在爆炸產(chǎn)生2秒后就自動(dòng)消失了。
第九步:為爆炸效果添加音效。
完成了畫(huà)面效果的制作,我們還需要給游戲添加上非常重要的一個(gè)元素——聲音。其實(shí)這個(gè)過(guò)程非常簡(jiǎn)單,只需要在網(wǎng)絡(luò)上搜尋一個(gè)您認(rèn)為合適的聲音,并將這段聲 音文件添加入項(xiàng)目文件夾的“Assets“【資源】文件夾內(nèi)。然后在Project【項(xiàng)目文件欄】中,將其拖拽給爆炸火花的預(yù)制對(duì)象 “BoomPrefab“,這樣聲音文件就可以和爆炸火花同時(shí)產(chǎn)生了。
如果您覺(jué)得聲音需要做適當(dāng)?shù)恼{(diào)節(jié),例如“是否在預(yù)制對(duì)象產(chǎn)生時(shí)播放?“,”聲音是否循環(huán)播放“等這些問(wèn)題。我們都可以在選中預(yù)制對(duì)象后,在它的屬性面板中找到聲音的調(diào)節(jié)卷展欄,對(duì)它一一進(jìn)行調(diào)節(jié)。
以上就是這款強(qiáng)大的跨平臺(tái)3D游戲開(kāi)發(fā)工具Unity3D的基礎(chǔ)入門(mén)教程了。相信大家看過(guò)之后多加練習(xí),一定能夠制作出非常優(yōu)秀的3D游戲,也希望本教程能夠幫助大家較快的上手Unity3D,謝謝!















 
 
 

 
 
 
 