?

基于unity3D的塔防游戲開發

2018-12-13 01:56仲曉慶蔡朝暉
科技創新與應用 2018年29期

仲曉慶 蔡朝暉

摘 要:塔防游戲作為一個在休閑游戲愛好人群中經久不衰的玩法類別,憑借多樣的玩法與超高的游戲體驗始終保有相當數量的忠實玩家。文章根據游戲的開發思路,使用unity3D引擎開發了一款塔防游戲。本游戲主要分為三個模塊,一是系統設置,包括游戲的各種設置,二是防御塔的功能設計,包括對防御塔的操作以及防御塔的攻擊,三是敵人的功能設計,包括敵人的各種行為設計。結果表明敵人與防御塔的屬性設置很合理,游戲體驗良好。

關鍵詞:unity3D;塔防;游戲開發

中圖分類號:TP391 文獻標志碼:A 文章編號:2095-2945(2018)29-0014-03

Abstract: Due to its variety of playing methods and the super experience, the tower defense game, as an unduring playing class in the leisure game lover groups, has been always retaining a considerable number of loyal players. According to game concept, a tower defense game, which is based on C#, is designed and realized in this paper. This game system mainly consists of three modules. The first one is system settings, including the various settings of the game. The second one is the function design of the defense tower, including the operation and attack of the defense tower. The third part is the function design of the enemy, including the various behaviors designs of enemies. The result shows that the properties of enemies and towers are reasonable and the game experience is great.

Keywords: unity3D; tower defence; game development

引言

近年來,迅速發展的手機游戲、網頁游戲和PC游戲已經成為游戲行業主流。隨著玩家對游戲的沉浸感和體驗感的要求逐漸增加,3D游戲成了當前游戲發展的主要熱點[1]。unity3D游戲引擎為開發者提供了創建高質量3D游戲和真實視覺效果的核心技術,為3D游戲的開發提供了強大的推動力[2]。

塔防,炮塔防御(Tower Defence,TD)的簡稱。作為一個經典的休閑游戲類別,塔防游戲從來沒有過成為真正的主流游戲,但卻始終都保有相當數量的忠實玩家,塔防游戲從產生到現在20余年,用不溫不火來形容完全不為過。不過,隨著現在整個游戲行業在玩法上的細化與創新,塔防類游戲也迎來了又一個春天,一些玩法和類別更多樣的塔防游戲開始問世——如手游市場上的《保衛蘿卜》,客戶端網游領域的《植物大戰僵尸》等等。而塔防這一經典的游戲玩法類型或許將在這一趨勢當中迎來前所未有的發展機遇。本文使用unity3D引擎開發的這款3D塔防游戲內容豐富,游戲體驗良好,這類策略游戲不僅可以使玩家娛樂,還能使玩家的智力得到很好的提升。

1 游戲分析

此款塔防游戲的玩法規則是地圖的一端自動出兵攻擊地圖的另一端,在敵人行動路線的兩邊玩家可按照自己的思路放置防御塔來阻止敵人的攻擊,一旦防御塔的放置位置不對,或者所選擇的防御塔攻擊速度不夠快,就阻止不了敵人的攻擊,那么敵人就很容易攻入玩家大本營,玩家便輸了。所以要求這類策略游戲要給玩家盡量大的個人發揮空間[3]。要達到這一點,可以從多方面著手:1.地圖;2.防御塔;3.敵人;4.玩家血量;5.游戲金幣。下面分別介紹。

地圖:游戲設計要控制敵人從出生點開始,按照事先設計好的路線到達終點,路線越不固定越多樣化越好,這就要求設計一個更為合理的敵人路線,來改變敵人原有的最短路線,或者把敵人到達終點的路線變得更長,為防御塔的攻擊提供更長的時間,從而達到消滅敵人的目的。

防御塔:可以設置不同的防御塔來供玩家選用,防御塔的不同可以從攻擊速度、攻擊范圍,還有購買和升級防御塔所消耗的游戲金幣、賣掉防御塔和所獲得的游戲金幣的不同而定。

敵人:從敵人的角度看,在設計敵人的時候可以根據敵人的種類,移動速度、攻擊力、數量、生命值以及敵人被擊殺后玩家可以獲得金幣數量的不同而定,一般來說,敵人所攜帶的金幣數量與士兵的生命值是成正比的,敵人等級越高,生命值就越高,同樣,攻擊力、攻擊速度、移動速度也就越高。

玩家血量:即當玩家設置防御塔,無法阻擊敵人到達目的地時,有多少敵人到達目的地,攻擊力是多少,玩家血量就會減少多少,直到零為止,此時玩家就輸了,因此玩家血量的多少可根據游戲的難易程度而設置相應的數量。

游戲金幣:游戲中的金幣,是支撐玩家繼續游戲的源泉,金幣越多,完成游戲的速度就越快,游戲就越簡單;反之,游戲就越難,因此,合理設置游戲中金幣的數量是非常重要的。設置金幣是要從以下幾個方面入手,游戲初始金幣,擊殺敵人獲得的金幣,拆除防御塔獲得的金幣,建造防御塔損失的金幣和升級防御塔損失的金幣。

2 游戲設計

本次設計主要體現在防御塔的功能、敵人的功能、防御塔與敵人的交互以及各種UI界面的設計上。游戲開始時通過一段動畫進入場景,在開始場景主畫面中有5個按鈕,分別是開始游戲、游戲難度、音量設置、游戲介紹和退出游戲,通過點擊不同的按鈕實現相應的功能。游戲開始時進入游戲場景,場景中有玩家血量的顯示、玩家金幣的顯示和暫停按鈕。點擊暫停按鈕彈出暫停界面,暫停界面中有繼續游戲,重新開始,音量調節和退出游戲按鈕。游戲過程中敵人會一直生成并按照路線移動,此時玩家需要建造防御塔來攻擊敵人,所有敵人都死亡,游戲勝利,彈出勝利界面;如果有敵人進入玩家大本營,并且使玩家總血量降為零,游戲結束,彈出失敗界面。

整個游戲分成系統、防御塔、敵人三大模塊。每個模塊進一步又可以細分為若干個子模塊。塔防游戲的功能結構圖如圖1所示。

3 游戲實現

3.1 防御塔

防御塔在塔防游戲中的作用是為了阻止敵人的入侵,其屬性有攻擊速度、價值和攻擊范圍。攻擊速度越快擊殺敵人的速度越快,攻擊速度會根據塔的類型來決定,本次設計共有三種防御塔,分為1、2、3三種等級。首先設出防御塔的擺放位置,添加一些unity3D自帶的圓柱體,調整大小后放置在地圖的合適位置上,通過點擊圓柱體就可以放置防御塔了,因為圓柱體的作用只是為了觸發事件,所以需要關掉圓柱體的MeshRenderer組件,這樣在游戲過程中就不會看見這些圓柱體了。

游戲中,通過點擊塔的底座來建立防御塔。當玩家擁有的金幣數量大于建立防御塔花費的金幣并且判定點擊的是防御塔的標簽時,系統通過Resources.Load(“Prefabs2/Arrowtower1”)動態加載防御塔的模型,并刪除掉防御塔的底座。

3.2 敵人

敵人生成后,加入到enemyList列表,再設計出敵人在地圖上行走的路線,使用transform.LookAt()方法使敵人的每一幀運動都是面朝著目標點的,然后按照自己的屬性獲取移動速度,再使用移動方法transform.Translate()來使敵人移動,在移動的過程中,為防止敵人一直朝著目標點的反向運動不停止,會有一個距離限制,當敵人距離目標點小于0.1時會停下來。實現方法是創建出一些空物體點作為敵人移動的目標,按地圖位置擺放好,其中enemyposition和monserposition是敵人的生成點,homeposition是玩家大本營。

因為游戲目的是讓敵人一直運動直到死亡或是到終點也就是玩家大本營,所以要讓敵人繼續向著下一個目標點運動。當敵人距離上一個目標點位置小于等于0.1時,就可以讓敵人朝著下一個目標點移動,方法與上一個目標點一樣,這樣敵人就可以朝著目的地一直移動了。

3.3 玩家

玩家主要是對屬性的設置,包括血量和金幣。玩家的總血量是游戲的一個重要的屬性,玩家游戲的目的就是要在游戲結束前,保證自己的血量大于0,就可以獲得游戲的勝利。在游戲過程中,如果有敵人進入玩家大本營,玩家就會損失一定的血量,血量只可以減少,不可以增加。

金幣是游戲中的貨幣,是建設防御塔的前提,在游戲中可以通過擊殺敵人來獲得相應的金幣,還可以通過拆除防御塔來獲得金幣。當在游戲中建立防御塔時,金幣會相應的減少,所以合理規劃金幣的使用是游戲獲勝的關鍵。

3.4 UI

在unity3D中設計UI有3種方法:一種是NGUI,通過插件創建;一種是UGUI,通過游戲自帶的組件,一種是OnGUI,在unity3D的生命周期OnGUI中編寫代碼。本次設計使用OnGUI。根據游戲的需求需要設計5個UI界面,分別是游戲運行時的初始菜單界面、游戲運行時的界面、暫停界面、游戲勝利界面和游戲失敗界面。限于篇幅,只給出游戲開始和暫停界面。

4 結束語

本文使用unity3D引擎開發了一款內容豐富的塔防游戲,實現的主要功能有敵人的生成、敵人的移動、創建防御塔、防御塔的攻擊。結果表明游戲屬性設置合理,敵人與防御塔的交互良好,玩家的游戲體驗良好,可玩性很高。

參考文獻:

[1]盧金浩,張帥,伍傳敏.基于unity3D三維游戲場景與AI系統的設計與實現[J].三明學院學報,2013,30(6):31-35.

[2]劉俊,郭祖江.基于unity3D的塔防游戲設計與實現[J].科技傳播,2015(5):152-154.

[3]張鵬飛,江岸.基于Android系統的塔防類游戲開發[J].信息與電腦(理論版),2014(3):47-50.

[4]胡蓉.淺談現代手機游戲制作[J].科技創新與應用,2017(17):297.

[5]趙明明,王明時.基于用戶體驗的觸屏手機游戲界面設計研究[J].科技創新與應用,2012(12):50.

[6]談嗣徽,溫彥茹.關于手機游戲設計的研究--如何設計一款成功的手機游戲[J].科技創新與應用,2015(18):9-10.

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合