資源描述:
《unity-3d開發(fā)教程:炸彈人游戲開發(fā)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Unity3D開發(fā)教程:炸彈人游戲開發(fā)簡介炸彈人游戲是上世紀80年代廣泛流行的一個2D游戲,本文創(chuàng)建的是一個基本型的此游戲的Unity3D版本。通過本游戲,你可以實現(xiàn)如下功能:投擲炸彈并把它放到特定位置通過光線跟蹤技術(shù)激活炸彈處理與玩家的爆炸碰撞處理與炸彈的爆炸碰撞游戲結(jié)局處理準備工作首先,請下載一個我為本文游戲建立的初始示例項目,然后把它放到一個你指定的位置。然后,使用Unity3D打開這個項目,注意到Assets文件夾下包含了好多的子文件夾,如圖所示。這里具體說一下各個文件夾的主要功能:An
2、imationControllers:存儲著游戲控制器部分,包括的邏輯部分。Materials:包含構(gòu)建各關(guān)卡場景所需要的塊(Block)材質(zhì)。Models:存儲玩家、關(guān)卡及炸彈模型,及其相關(guān)材質(zhì)。Music:存儲游戲的音效文件。PhysicsMaterials:存儲玩家的物理材質(zhì)數(shù)據(jù),它們是一些特殊類型的材質(zhì),用于實現(xiàn)特定的物理屬性。在本教程中,用于使玩家在無摩擦情況下輕松地在關(guān)卡中穿越。Prefabs:包含炸彈及爆炸的預制數(shù)據(jù)。Scenes:對應于游戲場景數(shù)據(jù)。Scripts:包含游戲的啟動
3、腳本,其中添加的大量注釋將有利于讀者閱讀源碼。SoundEffects:包含炸彈及爆炸效果相關(guān)的聲效文件。Textures:包含兩個玩家的紋理數(shù)據(jù)。投擲炸彈如果你還沒有打開游戲工程,請抓緊打開,然后試著運行一下此程序。沒有其他問題的話,你會觀察到如圖所示的情形:你會注意到,游戲中的兩個玩家可以通過鍵盤上的WASD四個字符鍵或者四個箭頭鍵驅(qū)動,使其沿著游戲地圖運動。通常,當按下空格鍵時紅色玩家會在其腳下安置一枚炸彈,而另一個玩家也能夠做同樣的事情——只是通過按回車鍵實現(xiàn)。然而,目前我們還沒有實現(xiàn)這
4、一功能。為此,你需要先編寫放置炸彈的代碼?,F(xiàn)在,請你使用自己喜歡的代碼編輯器打開腳本文件Player.cs。此腳本負責處理所有的玩家運動及動畫邏輯,還包含一個方法DropBomb,當關(guān)聯(lián)游戲?qū)ο?GameObject)bombPrefab時,它用于檢測目的。privatevoidDropBomb(){if(bombPrefab){//Checkifbombprefabisassignedfirst}}為了實現(xiàn)一個炸彈掉落在玩家下面的效果,在if語句中添加下面的代碼:Instantiate(bom
5、bPrefab,myTransform.position,bombPrefab.transform.rotation);上述代碼將在玩家腳下生成炸彈(隨著玩家的運動路徑的變化,將生成成串的炸彈)。現(xiàn)在,運行一下游戲工程,你會觀察到如下圖所示效果:目前,效果不錯吧!但是,還有一個小問題:炸彈投擲的方式如何?如果是無論在哪里你都能放炸彈的話,當你需要計算爆炸應該發(fā)生的位置時就會帶來一些問題。接下來,本教程將向你具體介紹如何實現(xiàn)爆炸的所有細節(jié)。炸彈定位下一步任務是確保炸彈在丟掉時能夠附著到相應位置,從
6、而實現(xiàn)炸彈很好地與地板上的網(wǎng)格對齊。由于我們的設計中網(wǎng)格上的每個圖塊大小是1×1,所以進行此更改是相當容易的。打開文件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兩個參數(shù)值,每一個浮點類型值被轉(zhuǎn)換為一個整型值,這就可以實現(xiàn)炸彈很好地與地板上的網(wǎng)格對齊的效果:現(xiàn)在,你可以再次啟動工程來運行一下,你會觀察到當投擲炸彈時,這些炸彈恰好能夠?qū)R網(wǎng)格:雖然把炸彈投擲到地圖上是很有趣的,但你知道真正有趣的事是如何實現(xiàn)爆炸!為此,我們再來添加一些功能。創(chuàng)建爆炸效果首先,我們要創(chuàng)建一個新的腳本文件:(1)從Project視圖下選擇Scripts文件
8、夾;(2)按下Create按鈕;(3)選擇“C#Script”;(4)把腳本文件命名為Bomb即可?,F(xiàn)在,把Bomb.cs腳本關(guān)聯(lián)到預制Bomb上:(1)在Prefabs文件夾中選擇GameObjectBomb;(2)點擊按鈕“AddComponent”;(3)在搜索框中輸入“bomb”;(4)選擇你剛剛創(chuàng)建的腳本Bomb.cs;(5)打開此腳本文件,然后在其Start()方法中輸入如下代碼:Invoke("Explode",3f);此方法使用了兩個參數(shù),第一個是將要調(diào)用的方法名稱,第二個是在調(diào)