999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Unity的校園3D跑酷游戲的研究與開發(fā)

2017-03-21 19:24:23竇楊輝王巍何鑫毛文泰
計(jì)算機(jī)時(shí)代 2017年3期
關(guān)鍵詞:引擎動(dòng)作游戲

竇楊輝+王巍+何鑫+毛文泰

摘 要: 介紹了基于Unity游戲引擎實(shí)現(xiàn)的校園主題的3D跑酷類游戲開發(fā)過程,Unity是一款跨平臺(tái)的游戲引擎,基于該引擎可以很便捷的開發(fā)出適合多種平臺(tái)運(yùn)行的游戲。游戲開發(fā)過程包括場景搭建、人物創(chuàng)建、游戲腳本及邏輯實(shí)現(xiàn),游戲邏輯部分對碰撞檢測算法進(jìn)行了詳細(xì)的描述。實(shí)驗(yàn)結(jié)果表明,研究實(shí)現(xiàn)的第三人稱視角跑酷游戲,用戶體驗(yàn)好,校園主題貼近生活,能夠?yàn)橥婕規(guī)聿煌谄渌螒虻母惺堋?/p>

關(guān)鍵詞: Unity游戲引擎; 跑酷游戲; 3D游戲; 碰撞檢測

中圖分類號(hào):TP399 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2017)03-52-03

Abstract: The campus theme 3D Parkour game development process based on Unity is described. The Unity game engine is a cross platform game engine can be used to conveniently develop games on a variety of platforms. Game design includes scene building, character creation, game scripts and logic processing. The collision detection algorithm is introduced in the part of game logic. The experimental results show that the novel third person view Parkour game researched in this paper has good user experience, and the new game theme of campus life can bring game experience different from other games' to the game players.

Key words: Unity game engine; Parkour game; 3D game; collision detection

0 引言

近年來移動(dòng)通信網(wǎng)絡(luò)技術(shù)飛速發(fā)展,越來越多的人通過智能手機(jī)利用碎片化的時(shí)間來玩休閑類游戲,尋找樂趣放松心情,于是手游行業(yè)得到了快速的發(fā)展,其中跑酷類游戲因?yàn)槠渲T多優(yōu)點(diǎn)而深受大眾喜愛。例如最近幾年來非常流行的跑酷類游戲就有Temple Run、Subway Surfers等。本文主要介紹利用Unity3D游戲引擎來開發(fā)一款休閑跑酷類游戲,以及利用Unity3D游戲引擎將游戲發(fā)布到Android平臺(tái)上。

1 Unity游戲引擎介紹

Unity3D是Unity Technologies公司開發(fā)的專業(yè)游戲引擎。它能夠讓游戲開發(fā)者輕松創(chuàng)建出2D游戲、3D游戲,以及實(shí)現(xiàn)建筑可視化、實(shí)時(shí)三維動(dòng)畫等,其具有強(qiáng)大的跨平臺(tái)性[1]。因?yàn)檫@些諸多優(yōu)點(diǎn),使得越來越多的游戲開發(fā)人員選擇Unity3D游戲引擎。

2 校園跑酷游戲設(shè)計(jì)與實(shí)現(xiàn)

2.1 游戲開發(fā)前的準(zhǔn)備工作

2.1.1 游戲類型

本游戲采用Unity3D游戲引擎為開發(fā)工具,采用C#腳本語言作為開發(fā)語言,通過智能手機(jī)的觸摸技術(shù)而實(shí)現(xiàn)第三人稱酷跑類游戲。

2.1.2 運(yùn)行的平臺(tái)

本游戲可以運(yùn)行在win7及以上系統(tǒng)平臺(tái)和Android2.0及以上系統(tǒng)平臺(tái)。

2.1.3 操作方式

校園跑酷游戲是一款操作簡單的游戲,在手機(jī)端需要在手機(jī)屏幕上下左右滑動(dòng)就能控制游戲角色躲避障礙物,在PC端是通過鼠標(biāo)的上下左右滑動(dòng)控制角色,在游戲中角色會(huì)一直沿著設(shè)計(jì)好的路線自動(dòng)跑動(dòng),玩家只需要控制躲避障礙物即可,如果在跑動(dòng)過程中撞到障礙物,玩家死亡游戲結(jié)束。

2.2 游戲設(shè)計(jì)

游戲的場景設(shè)計(jì)方面,采用的是大連民族大學(xué)的校園環(huán)境,在跑酷路線和場景的渲染上和學(xué)校的真實(shí)環(huán)境相似度很高,同時(shí)在障礙物的選擇上也和真實(shí)生活息息相關(guān),比如沒有井蓋的陷阱等。而我們選用的游戲角色則是一個(gè)將要遲到的大學(xué)生,游戲創(chuàng)意符合校園的氣息。游戲的設(shè)計(jì)整體思路如下。

首先準(zhǔn)備游戲素材,校園內(nèi)的各種場景和障礙物模型等素材都是通過3D Max這款美工軟件制作出來的,也包括一些元素圖片。其中游戲角色的制作會(huì)相對困難一些,然后把這些制作好的素材直接導(dǎo)入到Unity中就可以使用。

2.2.1 游戲場景搭建

游戲場景主要是對游戲地圖、燈光等環(huán)境因素進(jìn)行設(shè)置。游戲中可以包括多個(gè)場景,每個(gè)場景內(nèi)元素的風(fēng)格要統(tǒng)一。

⑴ 新建一個(gè)場景。

⑵ 導(dǎo)入資源。將游戲準(zhǔn)備好的材質(zhì)、貼圖、模型等資源導(dǎo)入到Project面板下的資源Assets文件夾中。

⑶ 設(shè)置環(huán)境光和創(chuàng)建光源。

⑷ 在場景中擺放模型。

⑸ 添加天空盒。

至此,基本的游戲場景搭建完畢。

2.2.2 游戲腳本及邏輯的實(shí)現(xiàn)

游戲腳本對于一款游戲來說是靈魂部分,所以游戲腳本的編寫至關(guān)重要。下面將具體介紹關(guān)于游戲腳本和邏輯方面的實(shí)現(xiàn)。

⑴ 主攝像機(jī)的設(shè)置及腳本開發(fā)

主攝像機(jī)腳本開發(fā)的主要功能是呈現(xiàn)主界面以及在各個(gè)界面直接進(jìn)行跳轉(zhuǎn)。下面是具體實(shí)現(xiàn)步驟。

① 在“Assets”文件夾中點(diǎn)擊“Create”選項(xiàng)下的“C# Script”創(chuàng)建腳本,命名為“Welcome”。

② 雙擊腳本,進(jìn)入“MonoDevelop”編輯器中,開始編輯腳本,此腳本主要完成界面的搭建以及向各個(gè)界面的跳轉(zhuǎn)。“MonoDevelop”編輯器是Unity3D游戲引擎集成的編輯器,它支持使用C#、Javascript和Boo語言開發(fā)[2]。

③ 當(dāng)腳本編寫完成后,將它拖到Main Camera組件上,完成主攝像機(jī)腳本的綁定。

⑵ 人物角色的創(chuàng)建及腳本的開發(fā)

人物角色對于一個(gè)游戲項(xiàng)目來說是至關(guān)重要的,沒有人物,游戲就只有一個(gè)空殼,所以人物的創(chuàng)建和人物行為的設(shè)計(jì)是游戲開發(fā)的核心。

人物的創(chuàng)建分為兩個(gè)部分,一部分是人物移動(dòng)的邏輯編寫,另一個(gè)部分是人物動(dòng)作跟隨人物移動(dòng)的播放。其具體實(shí)現(xiàn)方式如下。

① 首先是人物移動(dòng)的邏輯實(shí)現(xiàn)。人物分為跑步、左移、右移、跳躍、下滑、倒下六個(gè)動(dòng)作。

跑步的實(shí)現(xiàn)較簡單,思路如下:給定一個(gè)初始方向,初始速度,然后結(jié)合人物的動(dòng)作進(jìn)行跑步。

左移和右移的動(dòng)作比較復(fù)雜一些,因?yàn)檫@兩個(gè)動(dòng)作需要計(jì)算鼠標(biāo)或手指從開始點(diǎn)擊(手機(jī)系統(tǒng)是開始觸摸)到鼠標(biāo)、手指抬起的距離。根據(jù)距離的不同,來判斷人物是左移還是右移。

跳躍動(dòng)作實(shí)現(xiàn)的思路是當(dāng)鼠標(biāo)或手指向屏幕上方滑動(dòng)時(shí),計(jì)算這段點(diǎn)擊(觸摸)和抬起的距離,當(dāng)距離大于設(shè)定的一個(gè)閾值時(shí),讓人物進(jìn)行跳躍動(dòng)作。代碼如下:

if (Mathf.Abs(touchOffset.x)

&& touchOffset.y>0)

{ if (isJumping==false)

{ isJumping=true;

isUp=true;

haveJumpHeight=0;

}

return TouchDir.Top;

}

同理,下滑的動(dòng)作也是類似實(shí)現(xiàn),不同的檢測算法是在于此時(shí),人物向屏幕的下方滑動(dòng)。

倒下的動(dòng)作比較簡單,先判斷人物角色是否碰到障礙物,如果是,那么就執(zhí)行倒下的動(dòng)作。

② 人物動(dòng)作的實(shí)現(xiàn)技術(shù)。

Unity引擎經(jīng)過多個(gè)版本的發(fā)展,其動(dòng)畫系統(tǒng)也做了很大的改變。動(dòng)畫系統(tǒng)是Unity引擎的特色之處。在Unity4.0版本以后出現(xiàn)了新的Mecanim動(dòng)畫系統(tǒng),由于使用Mecanim動(dòng)畫系統(tǒng),需要美工人員專業(yè)的動(dòng)作配合,所以本游戲開發(fā)還是采用以前的動(dòng)畫系統(tǒng)。

Unity3.x版本中播放動(dòng)畫的時(shí)候使用Play()或CrossFade(),直接播放動(dòng)畫或淡入淡出播放動(dòng)畫[3]。

animation.Play("name");

animation.CrossFade("name");

也可以使用隊(duì)列播放,讓動(dòng)畫形成一個(gè)隊(duì)列。

在本游戲中動(dòng)作的具體實(shí)現(xiàn)算法是:

先判斷當(dāng)前的游戲狀態(tài),即是哪個(gè)動(dòng)作狀態(tài),然后再調(diào)用animation.Play(“name”)函數(shù)進(jìn)行相應(yīng)處理。例

if(animation.isJump) {

animation.Play(“Jump”);

}

至此,人物角色的創(chuàng)建完成。

⑶ 各種障礙物添加碰撞器進(jìn)行碰撞檢測

當(dāng)游戲主角與其他游戲?qū)ο驡ameObject發(fā)生碰撞時(shí),需要進(jìn)行一些特殊事件的處理。比如,在本游戲中,當(dāng)人物在奔跑的過程中,如果遇到了障礙物,玩家人物就會(huì)死亡,游戲結(jié)束,這時(shí),我們需要檢測到是否有碰撞現(xiàn)象產(chǎn)生,即碰撞檢測[4]。

首先,我們要明確產(chǎn)生碰撞信息所需要的條件。事實(shí)上,Unity3D集成開發(fā)環(huán)境中進(jìn)行碰撞檢測的方式有兩種,一種是利用碰撞器,另一種是利用觸發(fā)器。碰撞器的使用方式是將某一類碰撞器加載到游戲?qū)ο笊希|發(fā)器是一種屬性,只需要選中這個(gè)屬性,即可實(shí)現(xiàn)觸發(fā)器工作。

在本游戲中,運(yùn)用到碰撞檢測的地方有人物角色和各種障礙物。當(dāng)人物碰到障礙物后發(fā)生碰撞檢測,然后人物執(zhí)行倒下的動(dòng)作,游戲結(jié)束。因?yàn)樵谟螒蛑惺峭ㄟ^碰撞障礙物來判斷玩家是否死亡的,所以要給每個(gè)障礙物和游戲角色分別添加碰撞器,尤其是游戲角色更需要大小兩個(gè)碰撞器,因?yàn)橛螒蚪巧诙惚苷系K物時(shí)有一個(gè)滑行的動(dòng)作,如果這個(gè)動(dòng)作還用大碰撞器的話就會(huì)出現(xiàn)錯(cuò)誤,所以此處需要一個(gè)判斷,判斷玩家如果當(dāng)時(shí)正在處于滑行動(dòng)作就啟動(dòng)小碰撞器。

⑷ 最后就是游戲的發(fā)布與打包

配置好Android開發(fā)環(huán)境后,在Unity開發(fā)環(huán)境中打開菜單,找到build settings,在發(fā)布設(shè)置窗口中找到要發(fā)布的平臺(tái),即Android選項(xiàng),將涉及到游戲運(yùn)行的各個(gè)場景拖拽進(jìn)去。再點(diǎn)擊按鈕即可成功發(fā)布[5]。如圖1所示。游戲場景的索引值或者是場景在設(shè)置中的順序決定了場景的標(biāo)識(shí)。

3 游戲開發(fā)測試

游戲中有三種狀態(tài),分別為游戲未開始狀態(tài),游戲運(yùn)行狀態(tài),失敗狀態(tài)。游戲主界面,即游戲未開始狀態(tài)選用的是大連民族大學(xué)正門的圖片,同時(shí)上面的開始游戲按鈕可以控制游戲的開始,退出按鈕可以控制游戲的退出,而成績積分等信息由于還沒開始游戲,所以暫無數(shù)據(jù),如圖2所示。

在開始游戲后,由于跑酷類游戲的特點(diǎn)是只要玩家不觸碰障礙物就會(huì)一直奔跑下去,因此游戲開發(fā)過程中涉及到跑道的供給。本游戲提供三條跑道,在跑完一條跑道之后會(huì)進(jìn)行后臺(tái)的碰撞檢測,證明玩家已經(jīng)通過這條跑道,然后在玩家進(jìn)入第二條跑道時(shí)自動(dòng)創(chuàng)建第三條跑道,刪除第一條跑道,以此類推,始終保持游戲場景中有兩條跑道。這樣就會(huì)給玩家一種無窮無盡的感覺,如圖3所示。

4 結(jié)束語

本文介紹了基于校園場景的跑酷類游戲的設(shè)計(jì)與開發(fā)過程,包括基于Unity的游戲資源的導(dǎo)入和腳本的掛載,游戲人物的處理,特別是在游戲邏輯方面,我們對玩家動(dòng)作進(jìn)行了詳盡的處理。游戲運(yùn)行良好,校園實(shí)景的加載是游戲的創(chuàng)新之處。未來工作是優(yōu)化游戲代碼,解決多個(gè)模型導(dǎo)入帶來的卡頓現(xiàn)象。

參考文獻(xiàn)(References):

[1] 吳亞峰,杜化美,于復(fù)興.Unity游戲案例開發(fā)大全[M].人民郵電出版社,2015.

[2] Unity Technologies. Unity官方案例精講[M].中國鐵道出版社,2015.

[3] 宣雨松.Unity3D游戲開發(fā)[M].人民郵電出版社,2012.

[4] 林巧民等.3D游戲開發(fā)中的碰撞檢測算法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010.20(5):39-42

[5] 陶陽.基于Unity在Android平臺(tái)上開發(fā)游戲的方法[J].電腦編程技巧與維護(hù),2012.19:73-77

猜你喜歡
引擎動(dòng)作游戲
動(dòng)作描寫要具體
藍(lán)谷: “涉藍(lán)”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
畫動(dòng)作
動(dòng)作描寫不可少
數(shù)獨(dú)游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
第八章直接逃出游戲
非同一般的吃飯動(dòng)作
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
主站蜘蛛池模板: 一级一级一片免费| 亚洲综合片| 四虎精品国产AV二区| 不卡的在线视频免费观看| 成人一级黄色毛片| 国产麻豆精品手机在线观看| 99re精彩视频| 国产精品久久国产精麻豆99网站| 偷拍久久网| 亚亚洲乱码一二三四区| 日韩精品一区二区三区大桥未久| 亚瑟天堂久久一区二区影院| 精品福利视频网| 无码视频国产精品一区二区| 精品人妻系列无码专区久久| 91探花国产综合在线精品| 日本伊人色综合网| 午夜福利视频一区| 天堂av综合网| 毛片视频网址| 亚洲美女久久| 精品人妻无码区在线视频| 国产精品吹潮在线观看中文| 国产美女视频黄a视频全免费网站| a级毛片一区二区免费视频| 亚洲一区免费看| 九九精品在线观看| 久久青草精品一区二区三区| 91口爆吞精国产对白第三集 | 国产精品片在线观看手机版| 色婷婷电影网| 亚洲无线观看| 亚洲精品男人天堂| 欧美一区二区啪啪| 亚洲中文字幕无码爆乳| 中文字幕在线一区二区在线| 在线欧美国产| 欧美午夜视频在线| 国产在线观看精品| 91精品国产综合久久不国产大片| 免费网站成人亚洲| 欧美性色综合网| 久久夜色精品国产嚕嚕亚洲av| 中文字幕在线免费看| 国产爽妇精品| 久久综合激情网| 久久夜色精品| 亚洲综合色吧| 亚洲高清中文字幕| 人妻精品全国免费视频| 操国产美女| 五月婷婷丁香色| 精品视频91| 成年免费在线观看| 国产一区二区三区免费观看| 91系列在线观看| 国产精品三级专区| 92精品国产自产在线观看| av在线手机播放| 久久亚洲国产一区二区| 成人国产免费| 国产精品久线在线观看| 五月六月伊人狠狠丁香网| 久久精品无码一区二区国产区| 中美日韩在线网免费毛片视频| 久久永久精品免费视频| 国产99精品久久| 视频在线观看一区二区| 国产免费精彩视频| 欧美日韩v| 一级成人a毛片免费播放| 一级香蕉人体视频| 亚洲AV无码乱码在线观看裸奔| 色综合久久88| 成人免费网站久久久| 亚洲无码视频一区二区三区| 久久精品这里只有国产中文精品| a毛片在线播放| 亚洲第一区欧美国产综合 | 成人精品视频一区二区在线| 欧美一级片在线| 国产精品制服|