unity-3d開發(fā)教程:炸彈人游戲開發(fā)

unity-3d開發(fā)教程:炸彈人游戲開發(fā)

ID:11411623

大?。?02.61 KB

頁數(shù):35頁

時(shí)間:2018-07-11

unity-3d開發(fā)教程:炸彈人游戲開發(fā)_第1頁
unity-3d開發(fā)教程:炸彈人游戲開發(fā)_第2頁
unity-3d開發(fā)教程:炸彈人游戲開發(fā)_第3頁
unity-3d開發(fā)教程:炸彈人游戲開發(fā)_第4頁
unity-3d開發(fā)教程:炸彈人游戲開發(fā)_第5頁
資源描述:

《unity-3d開發(fā)教程:炸彈人游戲開發(fā)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、Unity3D開發(fā)教程:炸彈人游戲開發(fā)簡介炸彈人游戲是上世紀(jì)80年代廣泛流行的一個(gè)2D游戲,本文創(chuàng)建的是一個(gè)基本型的此游戲的Unity3D版本。通過本游戲,你可以實(shí)現(xiàn)如下功能:投擲炸彈并把它放到特定位置通過光線跟蹤技術(shù)激活炸彈處理與玩家的爆炸碰撞處理與炸彈的爆炸碰撞游戲結(jié)局處理準(zhǔn)備工作首先,請下載一個(gè)我為本文游戲建立的初始示例項(xiàng)目,然后把它放到一個(gè)你指定的位置。然后,使用Unity3D打開這個(gè)項(xiàng)目,注意到Assets文件夾下包含了好多的子文件夾,如圖所示。這里具體說一下各個(gè)文件夾的主要功能:An

2、imationControllers:存儲著游戲控制器部分,包括的邏輯部分。Materials:包含構(gòu)建各關(guān)卡場景所需要的塊(Block)材質(zhì)。Models:存儲玩家、關(guān)卡及炸彈模型,及其相關(guān)材質(zhì)。Music:存儲游戲的音效文件。PhysicsMaterials:存儲玩家的物理材質(zhì)數(shù)據(jù),它們是一些特殊類型的材質(zhì),用于實(shí)現(xiàn)特定的物理屬性。在本教程中,用于使玩家在無摩擦情況下輕松地在關(guān)卡中穿越。Prefabs:包含炸彈及爆炸的預(yù)制數(shù)據(jù)。Scenes:對應(yīng)于游戲場景數(shù)據(jù)。Scripts:包含游戲的啟動(dòng)

3、腳本,其中添加的大量注釋將有利于讀者閱讀源碼。SoundEffects:包含炸彈及爆炸效果相關(guān)的聲效文件。Textures:包含兩個(gè)玩家的紋理數(shù)據(jù)。投擲炸彈如果你還沒有打開游戲工程,請抓緊打開,然后試著運(yùn)行一下此程序。沒有其他問題的話,你會觀察到如圖所示的情形:你會注意到,游戲中的兩個(gè)玩家可以通過鍵盤上的WASD四個(gè)字符鍵或者四個(gè)箭頭鍵驅(qū)動(dòng),使其沿著游戲地圖運(yùn)動(dòng)。通常,當(dāng)按下空格鍵時(shí)紅色玩家會在其腳下安置一枚炸彈,而另一個(gè)玩家也能夠做同樣的事情——只是通過按回車鍵實(shí)現(xiàn)。然而,目前我們還沒有實(shí)現(xiàn)這

4、一功能。為此,你需要先編寫放置炸彈的代碼。現(xiàn)在,請你使用自己喜歡的代碼編輯器打開腳本文件Player.cs。此腳本負(fù)責(zé)處理所有的玩家運(yùn)動(dòng)及動(dòng)畫邏輯,還包含一個(gè)方法DropBomb,當(dāng)關(guān)聯(lián)游戲?qū)ο?GameObject)bombPrefab時(shí),它用于檢測目的。privatevoidDropBomb(){if(bombPrefab){//Checkifbombprefabisassignedfirst}}為了實(shí)現(xiàn)一個(gè)炸彈掉落在玩家下面的效果,在if語句中添加下面的代碼:Instantiate(bom

5、bPrefab,myTransform.position,bombPrefab.transform.rotation);上述代碼將在玩家腳下生成炸彈(隨著玩家的運(yùn)動(dòng)路徑的變化,將生成成串的炸彈)?,F(xiàn)在,運(yùn)行一下游戲工程,你會觀察到如下圖所示效果:目前,效果不錯(cuò)吧!但是,還有一個(gè)小問題:炸彈投擲的方式如何?如果是無論在哪里你都能放炸彈的話,當(dāng)你需要計(jì)算爆炸應(yīng)該發(fā)生的位置時(shí)就會帶來一些問題。接下來,本教程將向你具體介紹如何實(shí)現(xiàn)爆炸的所有細(xì)節(jié)。炸彈定位下一步任務(wù)是確保炸彈在丟掉時(shí)能夠附著到相應(yīng)位置,從

6、而實(shí)現(xiàn)炸彈很好地與地板上的網(wǎng)格對齊。由于我們的設(shè)計(jì)中網(wǎng)格上的每個(gè)圖塊大小是1×1,所以進(jìn)行此更改是相當(dāng)容易的。打開文件Player.cs,編輯一下Instantiate()函數(shù),像下面這樣:Instantiate(bombPrefab,newVector3(Mathf.RoundToInt(myTransform.position.x),bombPrefab.transform.position.y,Mathf.RoundToInt(myTransform.position.z)),bombPr

7、efab.transform.rotation);注意,這里函數(shù)Mathf.RoundToInt調(diào)用中使用了玩家位置的x和z兩個(gè)參數(shù)值,每一個(gè)浮點(diǎn)類型值被轉(zhuǎn)換為一個(gè)整型值,這就可以實(shí)現(xiàn)炸彈很好地與地板上的網(wǎng)格對齊的效果:現(xiàn)在,你可以再次啟動(dòng)工程來運(yùn)行一下,你會觀察到當(dāng)投擲炸彈時(shí),這些炸彈恰好能夠?qū)R網(wǎng)格:雖然把炸彈投擲到地圖上是很有趣的,但你知道真正有趣的事是如何實(shí)現(xiàn)爆炸!為此,我們再來添加一些功能。創(chuàng)建爆炸效果首先,我們要?jiǎng)?chuàng)建一個(gè)新的腳本文件:(1)從Project視圖下選擇Scripts文件

8、夾;(2)按下Create按鈕;(3)選擇“C#Script”;(4)把腳本文件命名為Bomb即可。現(xiàn)在,把Bomb.cs腳本關(guān)聯(lián)到預(yù)制Bomb上:(1)在Prefabs文件夾中選擇GameObjectBomb;(2)點(diǎn)擊按鈕“AddComponent”;(3)在搜索框中輸入“bomb”;(4)選擇你剛剛創(chuàng)建的腳本Bomb.cs;(5)打開此腳本文件,然后在其Start()方法中輸入如下代碼:Invoke("Explode",3f);此方法使用了兩個(gè)參數(shù),第一個(gè)是將要調(diào)用的方法名稱,第二個(gè)是在調(diào)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。