周世明 胡瑋
摘要:隨著三維立體技術的不斷發展,3D游戲逐漸興起。本文主要從Android平臺的角度出發,以峽谷攻防游戲為切入點,分析Unity3D游戲的設計策劃、流程編輯以及游戲的實現等內容,希望能夠為相關的研究人員提供一定的借鑒。
關鍵詞:Unity3D引擎;Android平臺;游戲開發
中圖分類號:TP311.52 ? 文獻標識碼:A ? 文章編號: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
隨著無線網絡和智能手機的興起,手機不僅僅是人們通信和聯系的工具,變得更加娛樂化。很多人習慣用手機看視頻、玩游戲。很多游戲公司都在朝著3D方向發展,3D游戲更加立體,玩家有著更加逼真的游戲體驗,因而備受追捧。
1 Unity3D引擎簡介
Unity3D是由Unity Technologies設計的游戲引擎,是一款游戲開發工具,可以實現游戲的立體化、建筑可視化。Unity的操作見界面清晰簡單,而且適用的范圍比較廣,支持很多當前的流行游戲,即便對于初學者來說也是非常容易就可以學會的。
2 游戲設計
本文設計的游戲是一款士兵攻防游戲,游戲的主要玩法就是玩家命令士兵代替自己在游戲中通過武力手段占領對方的基地,攻打成功,玩家勝利,反之則失敗,游戲結束。在設計這一款游戲的時候,由于其中的地理建筑比較多,所以采用Unity3D引擎設計的呈現效果更佳。使用的編程語言是C#,C#結合了C++強大的編程功能以及Visual Basic操作簡單優點,可以減少編程的工作量。
2.1地圖說明。地圖上分布著樹林、草地和一些據點。游戲雙方在開始進行游戲的時候都各自有一個據點,以藍色和紅色區分。此外還有一部分據點是黑色的,這部分據點處于無人占領的狀態。
2.2據點說明。據點是游戲雙方爭戰的焦點。本游戲中的設定的據點是具有增長金錢的功能特性,所以雙方都要盡量占有多的游戲據點。玩家在攻占據點的時候可以發現據點上方有一個表示據點內的軍隊數量,玩家需要考量自己當前的戰斗實力來決定是否進行攻打。
2.3部隊說明。部隊的數據值呈現的是部隊的戰斗力和士兵數量,部隊是展開和推進游戲的主要力量。
2.4派遣說明。派遣玩家根據自己的戰斗狀況派遣己方的軍隊沿著游戲中預設的道路去占領周圍的據點。
3 游戲流程設計
本款游戲的操作流程如下圖所示。玩家在操作界面上點擊“開始”,就會進入游戲界面,玩家如果是第一次玩的時候可以點擊“幫助”,里面有一些操作游戲的說明;或者玩家可以直接進入游戲,選擇通關關卡進入游戲。
程序流程控制如下:
本款游戲主要使用是Unity3D引擎中的MonoBehaviour類,將玩家在游戲中的操作分成單一的動作行為,并且將每一個操作行為作為一個MonoBehaviour類來封裝。再生成每個MonoBehaviour類的實例,并作為組件嵌入游戲對象。然后按照一定的順序(從下到上)調用每個對象的重載方法來實現游戲對象的全部行為。
常用到的是以下幾種函數:
①Update()。當MonoBehaviour啟用時,其Update在每一幀被調用。
②Awake()。當一個腳本實例被載入時,Awake被調用。
③Start()。Start僅在Update函數第一次被調用前調用。
4 游戲主要類實現
4.1據點類實現。本款游戲的主要環節就是游戲據點的占領,游戲的玩家也主要是圍繞據點來進行游戲的,所以據點類的操作實現非常重要。
據點在游戲中有三種不同的狀態:己方;敵方;無人占領。玩家需要判斷瓦據點的狀態決定游戲操作。下面根據枚舉類型來規定據點的狀態:
public ? ?enum ? judianstate
{
PlayerOccupy=1,
EnemyOccupy=2,
NonOccupy=3
}
玩家在進行游戲的過程中,可以對已經占領的據點進行操控。玩家可以用鼠標點擊已經占領的據點,同時在據點中會出現征兵的命令,此時周圍有一些據點也被點亮,這些被點亮的據點代表著玩家可以對其實施指派的命令,玩家可以指揮自己據點中的隊伍對其進行攻占。如果周圍其他的據點也處于被玩家占領的狀態,那么只能進行部隊傳輸,然后再進行新一輪的點亮和攻占。
4.2部隊類實現。部隊是代替玩家在游戲中攻防戰斗的主要力量。在游戲中,玩家可以向部隊發出戰斗和尋路的指令。尋路是因為本款游戲中有固定的通路,所以部隊需要在玩家的指令下前進。作戰命令就是部隊與敵方之間的較量。
部隊在前往對方據點進行攻擊的時候,使用的是NavMesh Agent組件,部隊在執行此項命令的時候,玩家只需要在游戲中動態指定據點,部隊就可以沿著游戲中規定的路徑前往。
結語:本文主要分析了如何利用Unity3D引擎設計和實現游戲,使用Unity研發游戲相對來說是比較簡單的。當然,隨著技術不斷開發和應用也會遇到一些問題,需要進一步完善Unity3D引擎游戲設計。
參考文獻:
[1]林深華,范志尚,蔣建兵,朱亞超.基于Android平臺Unity3D游戲設計與實現[J].企業科技與發展(下半月),2013,(5):40-42.
[2]上官大堰,黃心淵,孫望舒,李欣桐.基于Android平臺的Unity3D網絡功能的開發[J].計算機應用與軟件,2015,(8):72-75,131.