基于Unity3d的絕地武士動(dòng)作游戲設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于Unity3d的絕地武士動(dòng)作游戲設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于Unity3d的絕地武士動(dòng)作游戲設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于Unity3d的絕地武士動(dòng)作游戲設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于Unity3d的絕地武士動(dòng)作游戲設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于Unity3d的絕地武士動(dòng)作游戲設(shè)計(jì)與實(shí)現(xiàn)DesignandImplementationofJediactiongameBasedonUnity3D內(nèi)容摘要隨著當(dāng)今社會(huì)的高速發(fā)展和游戲行業(yè)的進(jìn)步,越來(lái)越多的人改變了以前的“玩游戲就是不務(wù)正業(yè),浪費(fèi)時(shí)間”的觀念?,F(xiàn)在,幾乎人人都玩游戲,例如《英雄聯(lián)盟》,《絕地求生》,《守望先鋒》,《極品飛車(chē)》,《星球大戰(zhàn)絕地:隕落的武士團(tuán)》等等。游戲本質(zhì)是滿足人們消遣以及娛樂(lè)的需求。動(dòng)作類(lèi)游戲作為人們打發(fā)時(shí)間的選擇,強(qiáng)調(diào)玩家的反應(yīng)能力和手、眼的配合,可以帶給玩家刺激和爽快的游戲體驗(yàn),玩家通過(guò)多次游玩游戲或者熟悉怪物的特定攻擊流程從而制定出自己的操作技巧。Unity3D作為一款能夠快速開(kāi)發(fā)和易于操作的游戲開(kāi)發(fā)引擎,在市場(chǎng)上的使用率越來(lái)越高。本課題探究基于Unity3D開(kāi)發(fā)的一款第三人稱(chēng)的絕地武士動(dòng)作類(lèi)游戲,設(shè)計(jì)的靈感來(lái)自于《星球大戰(zhàn)絕地:隕落的武士團(tuán)》和《賽博朋克2077》這兩款游戲。區(qū)別于這兩款流行的游戲大作,本款游戲另外結(jié)合了星球大戰(zhàn)的光劍武器和賽博朋克的游戲場(chǎng)景風(fēng)格。本文主要描述了該游戲的開(kāi)發(fā)原理,游戲的設(shè)計(jì)與實(shí)現(xiàn)以及游戲功能測(cè)試等。為后續(xù)希望開(kāi)發(fā)同類(lèi)游戲的開(kāi)發(fā)者提供借鑒與參考。關(guān)鍵詞:Unity3D;動(dòng)作類(lèi)游戲

AbstractWiththerapiddevelopmentoftoday'ssocietyandtheprogressofthegameindustry,moreandmorepeoplehavechangedthepreviousconceptof"playinggamesisawasteoftime".Now,almosteveryoneplaysgames,suchasLeagueofLegends,PUBG,Overwatch,NeedForSpeedandsoon.Theessenceofgamesistosatisfypeople'sneedsforrecreationandentertainment.Actiongames,asachoiceforpeopletospendtime,emphasizetheresponseabilityofplayersandthecooperationofhandsandeyes,whichcangiveplayersexcitingandrefreshinggameexperience.Playerscanmaketheirownoperationskillsbyplayinggamesformanytimesorbeingfamiliarwiththespecificattackprocessofmonsters.Unity3d,asafastdevelopingandeasytooperategamedevelopmentengine,isusedmoreandmorefrequentlyinthemarket.Thistopicexploresathird-personjediactiongamedevelopedbasedonUnity3D.Theinspirationofthedesigncomesfromtwogames,StarWarsJedi:thefallenorderandcyberpunk2077.Differentfromthesetwopopulargamemasterpieces,thisgamealsocombinesStarWarsLightsaberweaponsandcyberpunkgamescenestyle.Thispapermainlydescribesthedevelopmentprincipleofthegame,thedesignandimplementationofthegameandthefunctiontestofthegame.Forthefuturedeveloperswhowanttodevelopsimilargamestoprovidereferenceandreference.Keywords:Unity3D;Actiongame

目錄第一章 緒論 [5]。玩家和敵人武器的碰撞檢測(cè)定義一個(gè)Bool變量,來(lái)判斷該腳本是在玩家身上還是敵人身上運(yùn)行,如果在玩家身上運(yùn)行,則該腳本需要判斷碰撞到的碰撞體的tag為EnemyWeapon,反之則為PlayerWeapon。private

void

OnTriggerEnter(Collider

col)

{

if

(col.tag

==

WeaponName)

{

Debug.Log("碰撞了");

//

print(col.transform.position);

if

(!IsEnemy)

{

Playeram.TryDoDamage();

PlayerGetHit.Play();

Instantiate(AttackEffect,

col.transform.position,

Quaternion.identity);

}

else

{

Enemyac.TryDoDamage();

Debug.Log("Enemyac.TryDoDamage");

EnemyGetHit.Play();

Instantiate(AttackEffect,

col.transform.position,

Quaternion.identity);

}

}

}

void

BoolEnemy()

{

if

(IsEnemy)

{

WeaponName

=

"PlayerWeapon";

}

else

{

WeaponName

=

"EnemyWeapon";

}

}玩家格擋敵人攻擊的碰撞檢測(cè)判斷玩家是否格擋了敵人的攻擊,只需要在之前武器碰撞檢測(cè)的基礎(chǔ)上加多一個(gè)判斷是否碰到了格擋物體的碰撞體即可。private

void

OnTriggerEnter(Collider

col)

{

if

(col.tag

==

WeaponName)

{

Debug.Log("碰撞了");

if

(!IsEnemy)

{

if

(Playeram.Playerac.CheckState("Block"))//判斷是否格擋了攻擊

{

Debug.Log("攻擊已格擋");

}

else

{

Playeram.TryDoDamage();

PlayerGetHit.Play();

Instantiate(AttackEffect,

col.transform.position,

Quaternion.identity);

}

}

else

{

Enemyac.TryDoDamage();

Debug.Log("Enemyac.TryDoDamage");

EnemyGetHit.Play();

Instantiate(AttackEffect,

col.transform.position,

Quaternion.identity);

}

}游戲的打包和導(dǎo)出游戲的開(kāi)發(fā)已經(jīng)完成了,現(xiàn)在就差最后一步,就是要將游戲打包發(fā)布到PC端。在Unity3D的工具欄上選擇File->BuildSetting,在ScenesInBuild中將游戲中所用到的全部場(chǎng)景導(dǎo)出,這樣才能可以實(shí)現(xiàn)場(chǎng)景的切換功能。在左下角的導(dǎo)出模式中可選PC,Android,ios等等的平臺(tái)。選擇好PC端之后,點(diǎn)擊Build按鈕就可以實(shí)現(xiàn)打包發(fā)布了,如圖4-2所示。此時(shí)在之前所選擇的文件夾里面生成一個(gè)exe可執(zhí)行文件以及Data數(shù)據(jù)的文件夾,如圖4-3所示。圖4-2游戲?qū)С鲞^(guò)程圖4-3導(dǎo)出后的文件游戲測(cè)試測(cè)試的目的與意義在游戲還沒(méi)有完全成型之前,我們需要一步步實(shí)現(xiàn)游戲的設(shè)計(jì),但是在實(shí)現(xiàn)過(guò)程中,難免會(huì)有一些功能還不夠完善或者存在問(wèn)題的地方。我們需要一次次的測(cè)試才能發(fā)現(xiàn)問(wèn)題所在,從而對(duì)游戲內(nèi)容以及游戲邏輯代碼進(jìn)行重新修改和編寫(xiě),再反復(fù)的對(duì)此功能進(jìn)行測(cè)試,直到最后不會(huì)再出現(xiàn)類(lèi)似的問(wèn)題。游戲測(cè)試的目的與意義就是為了在游戲發(fā)布和上線之前,尋找出游戲還存在的一些潛在的問(wèn)題,通過(guò)發(fā)現(xiàn)并解決問(wèn)題,從而提高游戲的整體品控以及降低游戲發(fā)布之后的維護(hù)和更新成本,因?yàn)槿绻怯螒蛏暇€和發(fā)布之后才發(fā)現(xiàn)問(wèn)題的話,就會(huì)流失一定數(shù)量的玩家和降低了游戲的收入,因?yàn)榘l(fā)布上線之后才解決問(wèn)題的話,網(wǎng)絡(luò)游戲就要進(jìn)行停服更新,停服的時(shí)間游戲是沒(méi)有收入的,而且會(huì)給玩家?guī)?lái)不好的游戲體驗(yàn),甚至還會(huì)因此流失玩家的數(shù)量。游戲測(cè)試通常分成游戲的功能測(cè)試和游戲的性能測(cè)試。功能測(cè)試一般是對(duì)游戲的核心功能進(jìn)行測(cè)試,玩家是否可以正常的移動(dòng)和攻擊。玩家和敵人的攻擊碰撞檢測(cè)函數(shù)是否正確調(diào)用執(zhí)行,碰撞的時(shí)候是否出現(xiàn)了特定的攻擊粒子特效,受擊音樂(lè)是否正常播放。UI是否能正常的交互,場(chǎng)景是否可以正常加載切換等。性能測(cè)試則需要提前預(yù)先想到當(dāng)前游戲是否能支持配置比較低的電腦,以及當(dāng)前游戲中的性能缺陷和風(fēng)險(xiǎn)。通過(guò)反復(fù)的性能測(cè)試,得出運(yùn)行該游戲的最低配置要求。運(yùn)行測(cè)試找到導(dǎo)出好的游戲雙擊打開(kāi),在Graphics窗口可以選擇游戲的分辨率1920x1080,如圖5-1所示。在Input窗口中可以調(diào)整游戲的按鍵,如圖5-2所示。單擊Play按鈕,游戲就可以開(kāi)始運(yùn)行了。圖5-1Graphics圖像窗口圖5-2Input窗口功能測(cè)試本次測(cè)試使用人工測(cè)試為主,具體的測(cè)試詳情如表5-3所示。表5-3功能測(cè)試詳情測(cè)試的功能名稱(chēng)測(cè)試情況開(kāi)始界面UI的交互正常死亡界面UI的交互正常暫停界面UI的交互正常勝利界面UI的交互正常玩家和敵人血條UI的變化正常玩家的移動(dòng)正常敵人的移動(dòng)跟隨正常玩家的攻擊正常玩家的特殊原力技能正常敵人的攻擊正常士兵敵人的子彈發(fā)射正常玩家被敵人攻擊的碰撞檢測(cè)正常敵人被玩家攻擊的碰撞檢測(cè)正常玩家和敵人死亡的函調(diào)用正常是否有地形,人物穿模沒(méi)有經(jīng)過(guò)多次測(cè)試,鼠標(biāo)鍵盤(pán)以及手柄均可以正常與游戲進(jìn)行交互,敵人能在攻擊以及偵測(cè)范圍內(nèi)向玩家發(fā)起攻擊,玩家也可以正常的攻擊敵人以及使用特殊原力技能,敵人與玩家的碰撞檢測(cè)也可以正常出發(fā),敵人和玩家受傷時(shí)的血量可以正常扣除,游戲失敗勝利,暫停都正常跳出特定的游戲UI界面。游戲基本功能均已實(shí)現(xiàn),運(yùn)行流暢不卡頓,如圖5-4,5-5所示。圖5-4玩家格擋敵人攻擊圖5-5玩家攻擊敵人性能測(cè)試測(cè)試設(shè)備硬件數(shù)據(jù)CPU:Intel(R)Core(TM)i7-6700HQCPU@2.60GHz獨(dú)立顯卡:NVIDIAGeForceGTX960M運(yùn)行內(nèi)存RAM:16G系統(tǒng):Windows1064位分辨率:1920*1080測(cè)試結(jié)果:游戲可以在該硬件數(shù)據(jù)下流暢運(yùn)行,游戲的各部分功能均正常,沒(méi)有出現(xiàn)卡死或者閃退的情況,GPU、GPU、內(nèi)存的占有率均不高,各硬件溫度也在正常的范圍之內(nèi)。

總結(jié)一個(gè)基于Unity3D的絕地武士動(dòng)作類(lèi)游戲就完成了,也標(biāo)志著畢業(yè)設(shè)計(jì)的工作也到達(dá)了尾聲。在整個(gè)的設(shè)計(jì)與開(kāi)發(fā)制作的過(guò)程中受益匪淺,同時(shí)發(fā)現(xiàn)了自身存在一些技術(shù)上的問(wèn)題,能夠?qū)窈蟮墓ぷ饔懈嗟膸椭T谠O(shè)計(jì)開(kāi)始之前,我大致了解了一個(gè)動(dòng)作類(lèi)游戲的開(kāi)發(fā)過(guò)程,并且通過(guò)網(wǎng)上的教學(xué)視頻學(xué)習(xí)了很多Unity3D相關(guān)的知識(shí),但是由于在狀態(tài)機(jī)動(dòng)畫(huà)設(shè)計(jì)和編碼方面的學(xué)習(xí)不夠深入,經(jīng)常在這兩個(gè)方面上卡住了游戲開(kāi)發(fā)的進(jìn)度,通過(guò)在網(wǎng)上查找相關(guān)的資料和教學(xué)視頻以及詢(xún)問(wèn)老師過(guò)后,成功的解決了大部分游戲開(kāi)發(fā)上面的問(wèn)題。但是項(xiàng)目上的問(wèn)題雖然是已經(jīng)解決了,但是我在這方面的技術(shù)依然不夠扎實(shí),仍然需要在往后不斷的深入學(xué)習(xí)實(shí)踐中提升自己的技術(shù)。最后游戲?qū)嶋H呈現(xiàn)出來(lái)的打擊感不是特別強(qiáng),以及人物動(dòng)畫(huà)之間的銜接和動(dòng)畫(huà)融合有些許的生硬。在我開(kāi)發(fā)游戲的過(guò)程中還游玩《星球大戰(zhàn)絕地:隕落的武士團(tuán)》這款游戲,尋找設(shè)計(jì)靈感。本款游戲有幾處地方都是借鑒于星球大戰(zhàn)絕地:隕落的武士團(tuán)這款游戲,EA大廠開(kāi)發(fā)的游戲可玩性非常高,讓我感受到了個(gè)人與大廠之間的設(shè)計(jì)和技術(shù)的差距所在。游戲雖然制作成功,但是依然存在著以下問(wèn)題:1.場(chǎng)景雖然很精美,但是占用資源量過(guò)大,導(dǎo)致游戲幀率有點(diǎn)低。2.游

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論