周世明 胡瑋
摘要:隨著三維立體技術(shù)的不斷發(fā)展,3D游戲逐漸興起。本文主要從Android平臺(tái)的角度出發(fā),以峽谷攻防游戲?yàn)榍腥朦c(diǎn),分析Unity3D游戲的設(shè)計(jì)策劃、流程編輯以及游戲的實(shí)現(xiàn)等內(nèi)容,希望能夠?yàn)橄嚓P(guān)的研究人員提供一定的借鑒。
關(guān)鍵詞:Unity3D引擎;Android平臺(tái);游戲開(kāi)發(fā)
中圖分類號(hào):TP311.52 ? 文獻(xiàn)標(biāo)識(shí)碼:A ? 文章編號(hào):1672-9129(2018)15-0071-01
Abstract: with the continuous development of three-dimensional technology, 3D games have gradually emerged. From the perspective of Android platform, this paper analyzes the design and planning of Unity3D games, process editing, and the realization of games from the perspective of Canyon offensive and defensive games, hoping to provide some reference for relevant researchers.
Keywords: Unity3D engine; Android platform; Game Development
隨著無(wú)線網(wǎng)絡(luò)和智能手機(jī)的興起,手機(jī)不僅僅是人們通信和聯(lián)系的工具,變得更加娛樂(lè)化。很多人習(xí)慣用手機(jī)看視頻、玩游戲。很多游戲公司都在朝著3D方向發(fā)展,3D游戲更加立體,玩家有著更加逼真的游戲體驗(yàn),因而備受追捧。
1 Unity3D引擎簡(jiǎn)介
Unity3D是由Unity Technologies設(shè)計(jì)的游戲引擎,是一款游戲開(kāi)發(fā)工具,可以實(shí)現(xiàn)游戲的立體化、建筑可視化。Unity的操作見(jiàn)界面清晰簡(jiǎn)單,而且適用的范圍比較廣,支持很多當(dāng)前的流行游戲,即便對(duì)于初學(xué)者來(lái)說(shuō)也是非常容易就可以學(xué)會(huì)的。
2 游戲設(shè)計(jì)
本文設(shè)計(jì)的游戲是一款士兵攻防游戲,游戲的主要玩法就是玩家命令士兵代替自己在游戲中通過(guò)武力手段占領(lǐng)對(duì)方的基地,攻打成功,玩家勝利,反之則失敗,游戲結(jié)束。在設(shè)計(jì)這一款游戲的時(shí)候,由于其中的地理建筑比較多,所以采用Unity3D引擎設(shè)計(jì)的呈現(xiàn)效果更佳。使用的編程語(yǔ)言是C#,C#結(jié)合了C++強(qiáng)大的編程功能以及Visual Basic操作簡(jiǎn)單優(yōu)點(diǎn),可以減少編程的工作量。
2.1地圖說(shuō)明。地圖上分布著樹(shù)林、草地和一些據(jù)點(diǎn)。游戲雙方在開(kāi)始進(jìn)行游戲的時(shí)候都各自有一個(gè)據(jù)點(diǎn),以藍(lán)色和紅色區(qū)分。此外還有一部分據(jù)點(diǎn)是黑色的,這部分據(jù)點(diǎn)處于無(wú)人占領(lǐng)的狀態(tài)。
2.2據(jù)點(diǎn)說(shuō)明。據(jù)點(diǎn)是游戲雙方爭(zhēng)戰(zhàn)的焦點(diǎn)。本游戲中的設(shè)定的據(jù)點(diǎn)是具有增長(zhǎng)金錢(qián)的功能特性,所以雙方都要盡量占有多的游戲據(jù)點(diǎn)。玩家在攻占據(jù)點(diǎn)的時(shí)候可以發(fā)現(xiàn)據(jù)點(diǎn)上方有一個(gè)表示據(jù)點(diǎn)內(nèi)的軍隊(duì)數(shù)量,玩家需要考量自己當(dāng)前的戰(zhàn)斗實(shí)力來(lái)決定是否進(jìn)行攻打。
2.3部隊(duì)說(shuō)明。部隊(duì)的數(shù)據(jù)值呈現(xiàn)的是部隊(duì)的戰(zhàn)斗力和士兵數(shù)量,部隊(duì)是展開(kāi)和推進(jìn)游戲的主要力量。
2.4派遣說(shuō)明。派遣玩家根據(jù)自己的戰(zhàn)斗狀況派遣己方的軍隊(duì)沿著游戲中預(yù)設(shè)的道路去占領(lǐng)周圍的據(jù)點(diǎn)。
3 游戲流程設(shè)計(jì)
本款游戲的操作流程如下圖所示。玩家在操作界面上點(diǎn)擊“開(kāi)始”,就會(huì)進(jìn)入游戲界面,玩家如果是第一次玩的時(shí)候可以點(diǎn)擊“幫助”,里面有一些操作游戲的說(shuō)明;或者玩家可以直接進(jìn)入游戲,選擇通關(guān)關(guān)卡進(jìn)入游戲。
程序流程控制如下:
本款游戲主要使用是Unity3D引擎中的MonoBehaviour類,將玩家在游戲中的操作分成單一的動(dòng)作行為,并且將每一個(gè)操作行為作為一個(gè)MonoBehaviour類來(lái)封裝。再生成每個(gè)MonoBehaviour類的實(shí)例,并作為組件嵌入游戲?qū)ο?。然后按照一定的順序(從下到上)調(diào)用每個(gè)對(duì)象的重載方法來(lái)實(shí)現(xiàn)游戲?qū)ο蟮娜啃袨椤?/p>
常用到的是以下幾種函數(shù):
①Update()。當(dāng)MonoBehaviour啟用時(shí),其Update在每一幀被調(diào)用。
②Awake()。當(dāng)一個(gè)腳本實(shí)例被載入時(shí),Awake被調(diào)用。
③Start()。Start僅在Update函數(shù)第一次被調(diào)用前調(diào)用。
4 游戲主要類實(shí)現(xiàn)
4.1據(jù)點(diǎn)類實(shí)現(xiàn)。本款游戲的主要環(huán)節(jié)就是游戲據(jù)點(diǎn)的占領(lǐng),游戲的玩家也主要是圍繞據(jù)點(diǎn)來(lái)進(jìn)行游戲的,所以據(jù)點(diǎn)類的操作實(shí)現(xiàn)非常重要。
據(jù)點(diǎn)在游戲中有三種不同的狀態(tài):己方;敵方;無(wú)人占領(lǐng)。玩家需要判斷瓦據(jù)點(diǎn)的狀態(tài)決定游戲操作。下面根據(jù)枚舉類型來(lái)規(guī)定據(jù)點(diǎn)的狀態(tài):
public ? ?enum ? judianstate
{
PlayerOccupy=1,
EnemyOccupy=2,
NonOccupy=3
}
玩家在進(jìn)行游戲的過(guò)程中,可以對(duì)已經(jīng)占領(lǐng)的據(jù)點(diǎn)進(jìn)行操控。玩家可以用鼠標(biāo)點(diǎn)擊已經(jīng)占領(lǐng)的據(jù)點(diǎn),同時(shí)在據(jù)點(diǎn)中會(huì)出現(xiàn)征兵的命令,此時(shí)周圍有一些據(jù)點(diǎn)也被點(diǎn)亮,這些被點(diǎn)亮的據(jù)點(diǎn)代表著玩家可以對(duì)其實(shí)施指派的命令,玩家可以指揮自己據(jù)點(diǎn)中的隊(duì)伍對(duì)其進(jìn)行攻占。如果周圍其他的據(jù)點(diǎn)也處于被玩家占領(lǐng)的狀態(tài),那么只能進(jìn)行部隊(duì)傳輸,然后再進(jìn)行新一輪的點(diǎn)亮和攻占。
4.2部隊(duì)類實(shí)現(xiàn)。部隊(duì)是代替玩家在游戲中攻防戰(zhàn)斗的主要力量。在游戲中,玩家可以向部隊(duì)發(fā)出戰(zhàn)斗和尋路的指令。尋路是因?yàn)楸究钣螒蛑杏泄潭ǖ耐?,所以部?duì)需要在玩家的指令下前進(jìn)。作戰(zhàn)命令就是部隊(duì)與敵方之間的較量。
部隊(duì)在前往對(duì)方據(jù)點(diǎn)進(jìn)行攻擊的時(shí)候,使用的是NavMesh Agent組件,部隊(duì)在執(zhí)行此項(xiàng)命令的時(shí)候,玩家只需要在游戲中動(dòng)態(tài)指定據(jù)點(diǎn),部隊(duì)就可以沿著游戲中規(guī)定的路徑前往。
結(jié)語(yǔ):本文主要分析了如何利用Unity3D引擎設(shè)計(jì)和實(shí)現(xiàn)游戲,使用Unity研發(fā)游戲相對(duì)來(lái)說(shuō)是比較簡(jiǎn)單的。當(dāng)然,隨著技術(shù)不斷開(kāi)發(fā)和應(yīng)用也會(huì)遇到一些問(wèn)題,需要進(jìn)一步完善Unity3D引擎游戲設(shè)計(jì)。
參考文獻(xiàn):
[1]林深華,范志尚,蔣建兵,朱亞超.基于Android平臺(tái)Unity3D游戲設(shè)計(jì)與實(shí)現(xiàn)[J].企業(yè)科技與發(fā)展(下半月),2013,(5):40-42.
[2]上官大堰,黃心淵,孫望舒,李欣桐.基于Android平臺(tái)的Unity3D網(wǎng)絡(luò)功能的開(kāi)發(fā)[J].計(jì)算機(jī)應(yīng)用與軟件,2015,(8):72-75,131.