摘要:Unity是由Unity Technologies公司開(kāi)發(fā)的3D跨平臺(tái)的專業(yè)游戲引擎,基于該引擎可以很方便地開(kāi)發(fā)出適用于多種平臺(tái)的游戲。在介紹Unity引擎的基礎(chǔ)上通過(guò)開(kāi)發(fā)《飛盤射擊》游戲?yàn)槔?,給出了一種基于Unity的游戲開(kāi)發(fā)的一般方法。
關(guān)鍵詞:Unity游戲引擎,游戲開(kāi)發(fā)
1引言
Unity是由Unity Technologies公司開(kāi)發(fā)的一款用于輕松創(chuàng)建3D視頻游戲、建筑可視化、實(shí)時(shí)三維動(dòng)畫(huà)等類型互動(dòng)內(nèi)容的多平臺(tái)的綜合性3D開(kāi)發(fā)工具,也是一個(gè)全面整合的專業(yè)游戲引擎。Unity引擎的功能強(qiáng)大,最顯著特點(diǎn)就是跨平臺(tái)游戲開(kāi)發(fā),生成的游戲可以導(dǎo)出到包括Windows、Mac、I0S、Android、PS3、Wii、XBox360在內(nèi)的眾多平臺(tái),跨平臺(tái)開(kāi)發(fā)無(wú)疑為開(kāi)發(fā)者節(jié)省了大量時(shí)間。Unity游戲引擎和開(kāi)發(fā)工具支持JavaScript和C#腳本語(yǔ)言,還可同時(shí)支持iPhone和Android平臺(tái)的游戲開(kāi)發(fā),因此也是廣大手機(jī)游戲開(kāi)發(fā)商的首選工具。我們通過(guò)完成一個(gè)簡(jiǎn)單的《飛盤射擊》游戲?yàn)槔?,提出一種基于Unity的面向Android平臺(tái)的游戲開(kāi)發(fā)的一般方法,以供Unity引擎的愛(ài)好者和初學(xué)者學(xué)習(xí)參考。
2Unity 3D引擎簡(jiǎn)介
Unity是一個(gè)3D游戲開(kāi)發(fā)工具和游戲引擎套件,其中包括了圖形、音頻、物理、網(wǎng)絡(luò)等多方面的引擎支持,并且有一個(gè)非常強(qiáng)大的編輯器來(lái)整合這一切。Unity簡(jiǎn)單的界面、友好的開(kāi)發(fā)環(huán)境以及時(shí)所有流行游戲平臺(tái)的廣泛支持,使得它對(duì)于新的開(kāi)發(fā)人員或是那些希望使用一個(gè)簡(jiǎn)單、高效并且友好的游戲引擎來(lái)創(chuàng)建游戲的人來(lái)說(shuō)是完美的。Unity3D引擎官方的下載地址為https://store.unity.com/cn,目前最新版本為Unity 5.5.0,還在不斷地升級(jí)中。Unity的下載與安裝比較簡(jiǎn)單,只要根據(jù)步驟進(jìn)行就可以順利完成這個(gè)過(guò)程。安裝完成后打開(kāi),首先看到的就是Unity3D的編輯器界面,如圖1所示。
在主界面上,有幾個(gè)主要的窗口,中問(wèn)部分是游戲Game窗口和場(chǎng)景Scene窗口,前者是游戲窗口,就是游戲運(yùn)行時(shí)的初始攝像機(jī)窗口,后者是編輯狀態(tài)下當(dāng)前的場(chǎng)景Scene對(duì)應(yīng)的窗口,可以在該窗口中選擇對(duì)象,然后進(jìn)行編輯。
圖1中左邊下面是層次(Hierarchy)窗口,層次視圖(Hierarchy)將顯示當(dāng)前打開(kāi)的,unity場(chǎng)景文件(Scene File)中的所有物體。它用于選擇并成組物體,當(dāng)從場(chǎng)景中添加或刪除一個(gè)物體時(shí),它將在層次中顯示或消失。如果不能在場(chǎng)景視圖中同時(shí)看到所有物體,可以使用層次來(lái)選擇并檢視它們。
圖1的中間下方是工程視圖(Project View)。當(dāng)創(chuàng)建一個(gè)工程時(shí),將生成一組文件夾。其中之一被稱為資源(Assets)文件夾。在工程視圖(Pmleet View)中可以查看資源文件夾。如果打開(kāi)過(guò)資源文件夾,將發(fā)現(xiàn)所有的項(xiàng)都將出現(xiàn)在工程視圖中。
圖1中的右邊部分是檢視面板(Inspector),當(dāng)在場(chǎng)景窗口、層次窗口或工程視圖中選中或編輯對(duì)象時(shí),檢視面板(Inspector)就會(huì)顯示當(dāng)前選中物體的基本信息,也顯示它所包含的組件(component)和組件的屬性,是用來(lái)設(shè)置場(chǎng)景中物體屬性的地方。
游戲制作完畢后,需要進(jìn)行平臺(tái)打包才能最終發(fā)布,在Windows下打包與運(yùn)行是比較簡(jiǎn)單的。在Unity導(dǎo)航菜單欄中選擇"File"->"Build Settings"菜單項(xiàng),此時(shí)打開(kāi)Build Settings對(duì)話框。在打包游戲平臺(tái)中有多種格式可供選擇。當(dāng)選擇某個(gè)發(fā)布平臺(tái)后,點(diǎn)擊Switch Platform,然后可以選擇Player Settings進(jìn)行相關(guān)參數(shù)設(shè)置。一旦選擇完成,點(diǎn)擊右下角的"Build and Run"按鈕,即可在Windows下創(chuàng)建自己的項(xiàng)目了。
3 《飛盤射擊》游戲的設(shè)計(jì)與實(shí)現(xiàn)
《飛盤射擊》游戲是一個(gè)簡(jiǎn)單的小游戲,它的一般思路是:游戲玩家用鼠標(biāo)控制槍支,游戲畫(huà)面隨機(jī)產(chǎn)生飛盤,20秒內(nèi),如果鼠標(biāo)點(diǎn)中飛盤打擊左鍵即為打中,發(fā)出聲響得分顯示不斷增加,游戲結(jié)束,可以得到總分,也可以重新開(kāi)始或者結(jié)束游戲。這個(gè)游戲的思路很簡(jiǎn)單,重在介紹游戲開(kāi)發(fā)的一般方法。
首先,準(zhǔn)備游戲所需素材。游戲素材就是開(kāi)發(fā)游戲所需要的模型、紋理、圖片等。這里主要是手臂的模型和隧道模型,還有設(shè)計(jì)聲音文件以及必要的圖片,可以自己在Unity中建模,然后貼上紋理圖片即可。
其次,設(shè)計(jì)游戲算法。游戲設(shè)計(jì)有3個(gè)狀態(tài):游戲開(kāi)始狀態(tài)、運(yùn)行狀態(tài)、結(jié)束狀態(tài)。為了控制游戲的啟動(dòng)與停止,在土界面上添加一個(gè)按鈕"開(kāi)始游戲",游戲啟動(dòng)之后,開(kāi)始20秒倒計(jì)時(shí),隨機(jī)飛出飛盤,鼠標(biāo)點(diǎn)中飛盤單擊左鍵發(fā)出射擊音效,得分顯示增加,時(shí)間到后倒計(jì)時(shí)計(jì)數(shù)器清零。在需要設(shè)計(jì)1個(gè)場(chǎng)景(Game)和5個(gè)腳本(script)。5個(gè)腳本命名為FeiPanManager、GameManager、GameReset、GameStart和Weapon。GameManager是游戲主流程控制腳本,F(xiàn)eiPanManager是飛盤生成和銷毀的腳本,Weapon是武器射擊、光效、音效、子彈生成控制腳本,GameReset和GameStart是用于UI控制的腳本。
第三,編碼實(shí)現(xiàn)游戲算法。根據(jù)以上的設(shè)計(jì),使用C#完成上述腳本編寫(xiě),具體實(shí)現(xiàn)效果圖如下:
第四,游戲的測(cè)試運(yùn)行,程序算法實(shí)現(xiàn)之后,就是游戲的測(cè)試運(yùn)行了。在游戲game窗El中觀察游戲運(yùn)行結(jié)果.如圖2所示。最后將游戲的打包與發(fā)布。在Unity中打開(kāi)幕單,找到Build Settings.在發(fā)布設(shè)置窗口中設(shè)置游戲打包生成的參數(shù),將場(chǎng)景都包含進(jìn)去.切換到相應(yīng)平臺(tái)發(fā)布。
4 結(jié)束
基于Unity 3D游戲開(kāi)發(fā)是比較方便快捷的,本文以一個(gè)簡(jiǎn)單的例子進(jìn)行了說(shuō)明,例示了C#腳本的實(shí)現(xiàn)方法,體現(xiàn)了基于Unity的游戲開(kāi)發(fā)的一般方法。當(dāng)然,游戲開(kāi)發(fā)比較復(fù)雜,更全面更復(fù)雜的功能設(shè)計(jì)與實(shí)現(xiàn)還需要進(jìn)一步展開(kāi)研究。
參考文獻(xiàn)
【l】(美)米歇爾o梅納德(Miehelle Menard).著.史曉明,李強(qiáng),譯游戲開(kāi)發(fā)技術(shù)系列叢書(shū):Unity游戲開(kāi)發(fā)實(shí)戰(zhàn)機(jī)械工業(yè)出版種.2012
【2】路朝龍. Unity3D游戲開(kāi)發(fā)從入門到精通[M].北京:中國(guó)鐵道出版社,2013.
【3】俞亮,俞文心.基于Unity的Web游戲設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014(08):225-226.
作者簡(jiǎn)介:
胡永祥(1969年6月-)男,漢族,江蘇省淮安市人,講師,江南大學(xué)控制工程碩士,主要計(jì)算機(jī)應(yīng)用、計(jì)算機(jī)網(wǎng)絡(luò)等領(lǐng)域的研究