www.日本精品,久久中文视频,中文字幕第一页在线播放,香蕉视频免费网站,老湿机一区午夜精品免费福利,91久久综合精品国产丝袜长腿,欧美日韩视频精品一区二区

一種基于Unity的人機對戰(zhàn)游戲的設計與實現(xiàn)

發(fā)布時間:2018-07-01 來源: 幽默笑話 點擊:


  摘要:隨著社會科技水平和經濟水平的迅速發(fā)展,游戲逐步成為人們享受生活娛樂的一種流行的方式,Unity3D作為一款虛擬3D開發(fā)的軟件正在逐步升溫,他以其跨平臺的優(yōu)勢,良好的界面環(huán)境,操作要求不高,強大的功能設計漸漸的被廣大虛擬現(xiàn)實的設計者們所使用。
  本文主要是設計一款能夠在手機上操作的休閑類射擊游戲,功能模塊分為:敵機的生成與銷毀模塊,子彈的對象池,以及子彈與敵機的碰撞檢測模塊,還有最后的結束界面,用本地保存歷史最高的分數。
  關鍵詞:Unity3D;射擊游戲;安卓
  就目前的游戲市場而已,很多人對unity3d游戲偏愛有佳,從事unity3d游戲開發(fā)前景廣闊。在本次的畢業(yè)設計,用戶能夠在手機上通過自身的單手觸屏的操作,享受游戲帶來的快樂。而通過本次的射擊游戲的開發(fā),讓我對與大型游戲的制作流程有了一個更加深入的了解,并且提高的我邏輯思維能力,代碼能力,讓我受益匪淺。
  一、游戲的模塊分析
  新課程理念的核心在于充分發(fā)揮學生的思維能力,培養(yǎng)學生多元化的學習能力,進而實現(xiàn)國家人才培養(yǎng)的基本目標。新課程面對的一個重要問題就是如何提高課堂教學效益最大化,即初中化學教師應如何改善自身的教學方式,提高化學教學的有效性,促使初中化學教學能夠達到預想的教學效果,實現(xiàn)現(xiàn)代化人才培養(yǎng)的宏偉目標。
 。ㄒ唬┯螒蛑骶模塊
  游戲中共有三種等級的敵機,小型敵機生命值和分值最低,移動速度最快,出現(xiàn)頻率最高,中型敵機生命值和分值略多于小型敵機,移動速度略低于小型敵機,出現(xiàn)頻率略高于小型敵機,大型敵機生命值和分值最高,移動速度最慢,屬于BOSS,當只有消滅數量的敵機,達到一定分數的時候才會出現(xiàn)。敵機生命值耗盡則爆炸,飛出邊界自動銷毀。而玩家擁有主武器和副武器,在得到子彈獎勵物品后,會在一定時間增強火力,玩家受到敵機碰撞會損失生命值,獎勵物品同樣在飛出邊界后,或者過段時間后會自動銷毀,敵機無法獲得獎勵物品,玩家每消滅一個敵機得到相應的分數,生命值耗盡則游戲結束如果和敵機發(fā)生碰撞或者與敵機的子彈發(fā)生碰撞,血量就會變少,當消滅一個敵機時,游戲右上方的分數會增加,敵機會有銷毀的動畫。由于本次采用是無盡深淵模式,就是一直刷怪,所以關數只有一關。同時,對于游戲的界面進行一些處理,要有進入游戲后的玩家角色界面,如血條,分數等,還需要結束游戲界面。
  (二)游戲獎勵物品模塊
  游戲中有多種獎勵物品,為子彈獎勵,通過一個腳本控制,Inspector屬性面板中給定,由生成器根據不同頻率周期控制生成,生成的地點也是隨機的,獎勵物品飛出邊界后自動銷毀,碰撞到玩家戰(zhàn)機,則由玩家戰(zhàn)機上面的腳本判斷獎勵類型,同時,獎勵物品消失。獎勵物品和敵機沒有碰撞檢測,當獎勵物品和敵機位置重疊,獎勵物品渲染層級在敵機上層,優(yōu)先顯示,不會被敵機遮擋
 。ㄈ⿺硻C模塊
  游戲中有三種敵機,小型、中型和大型,三種類型的敵機都有同一個腳本控制,生命值(hp)、速度(speed)、分值,3個屬性為公共變量(public),直接在Inspector屬性面板中分別修改三種敵機的預制件(prefab)的屬性,生成的敵機就擁有不同的屬性。敵機的生成通過生成器(spawn)控制,生成器的腳本通過不同的頻率控制生成器隨機生成敵機,當然,敵機我也是為了重復利用,采用了對象池的技術,通過生成鏈表和死亡鏈表來重復使用。
  二、游戲的實現(xiàn)
 。ㄒ唬┲鹘秋w機的移動
  在本款游戲中,主要是在安卓端使用,所以主要是用在手機拖拽,所以調用了OnMouseDrag函數,并且要將鼠標點擊的屏幕坐標轉換為世界坐標來計算,只能限定在屏幕內拖動不能拖到屏幕外側。
 。ǘ┲鹘堑呐鲎矙z測
  碰撞檢測的觸發(fā)條件是,兩個物體必須要有Box Collider或者Charater Controller,且至少一個Rigidbody組件。而在本次的游戲設計中,除了在主角物體的Inspector面板中的添加的Box Collider2D組件之外,還應該給主角添加Rigidbody2D,Rigidbody2D是剛體組件,使物體具有物理屬性,將其中的Gravity Scale設置為0,這樣物體不會受到重力影響,不會掉落,Box Collider2D是物體在2D環(huán)境中的碰撞體,可以用來檢測是否發(fā)生碰撞,調整Box Collider2D的大小剛好包圍飛機,勾選其中的Is Trigger,使其進行觸發(fā)檢測,但并不會產生物理碰撞效果。同時,將player的tag設置成為Player,同理,后面提到的子彈,敵機,獎勵物品都會有Tag,以及Box Colloder2D及Rigidbody2D,是為了檢測兩者直接的碰撞檢測,那么主角就會有兩者情況,第一種是碰撞到敵機或者是敵機的子彈,首先要判斷當前血量,如果血量大于0,那么主角的血量減少否則就播放主角的死亡動畫,展開游戲結束的畫面。所以,子彈和敵機的碰撞也是上述相同的道理。
 。ㄈv史最高和最高分數
  用Unity中的PlayerPrefs.GetInt方法來保存歷史最高的,PlayerPrefs.SetInt方法來設置,具體的實現(xiàn)邏輯為第一次分數肯定是歷史最高,然后保存在本地,當第二次失敗之后,會將第二次的成績跟歷史最高成績對比,如果第二次的成績大于歷史最高成績,那么就把第二次的成績變成歷史記錄顯示出來,反之,則還是原來的歷史分數
  三、總結
  本文主要實現(xiàn)了基于Unity開發(fā)人機射擊游戲的詳細基本開發(fā)流程。
  首先分析了游戲行業(yè)的發(fā)展趨勢及手游的市場的巨大前景,介紹了Unity開發(fā)工具的優(yōu)勢和特點,C#的優(yōu)勢,通過商業(yè)前景和發(fā)展趨勢闡述了選擇這個項目的意義。后面介紹了開發(fā)所在的系統(tǒng)環(huán)境和開發(fā)過程中用到的工具以及相關技術,接著就是此項目設計、實現(xiàn)具體步驟。
  此項目基本實現(xiàn)了飛行射擊游戲的功能,但是細節(jié)方面還遠遠不夠,游戲難度控制也沒有太多的體現(xiàn),敵機類型只有三種,玩家飛機只有一種,獎勵物品和細節(jié)動畫特效都做得不夠全面。旨在通過此項目的實現(xiàn),熟悉Unity結合C#腳本開發(fā)手游的具體流程,掌握Unity開發(fā)工具的常用功能,以及對Unity開發(fā)虛擬現(xiàn)實手游的展望。在項目的實現(xiàn)過程中,也遇到了大大小小的問題,但都在導師、同學的幫助下逐一解決了。也使自己清楚自己的不足和局限性,尤其是在Unity的基礎方面還需要大量的花費時間去學習,由于我才使用Unity不久,算是個初學者,此次項目的設計和實現(xiàn)還有欠缺和不足的地方,能有進一步改善的空間。
  參考文獻:
  [1]金璽曾《Unity3D\2D手機游戲開發(fā)(第二版)》清華大學出版社2014年10月.
  [2]Unity Technologies 《Unity4.X從入門到精通》中國鐵道出版社 2013年11月.
  [3](美)梅納德, 瓦格斯特夫著,占紅來譯《Unity游戲開發(fā)實戰(zhàn)(原書第2版)》機械工業(yè)出版社 2015年11月.
  [4](美) Matthew Johnson,James A. Henley著 郭華豐 韋靜 譯《Unity2D游戲開發(fā)秘籍》清華大學出版社 2015年9月.

相關熱詞搜索:人機 對戰(zhàn) 設計 游戲 Unity

版權所有 蒲公英文摘 www.newchangjing.com