亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Unity3D的冒險(xiǎn)游戲的設(shè)計(jì)與實(shí)現(xiàn)

        2023-09-24 05:33:12楊淮敏邱樹偉
        現(xiàn)代計(jì)算機(jī) 2023年13期
        關(guān)鍵詞:動(dòng)畫界面游戲

        楊淮敏,邱樹偉

        (韓山師范學(xué)院計(jì)算機(jī)與信息工程學(xué)院,潮州 521041)

        0 引言

        游戲是一種以娛樂態(tài)度解決問題的活動(dòng),被稱為第九藝術(shù),好的游戲可以發(fā)人深省或讓玩家放松心情、提升智力。目前,國產(chǎn)優(yōu)秀的單機(jī)游戲屈指可數(shù),究其原因,除了市場(chǎng)因素之外,游戲開發(fā)技術(shù)的復(fù)雜性也影響了國產(chǎn)單機(jī)游戲的開發(fā)。

        文獻(xiàn)[1]的研究指出,當(dāng)下越來越多的游戲已經(jīng)無法滿足廣大游戲愛好者的需求,玩家更傾向于玩法新穎、內(nèi)存占用小、加載速度快的高品質(zhì)游戲。游戲開發(fā)者必須快速高效地開發(fā)出成熟穩(wěn)定的產(chǎn)品來滿足玩家的需求。為了實(shí)現(xiàn)這一目的,Unity3D 引擎是首選的開發(fā)工具。文獻(xiàn)[2]闡明Unity3D 是當(dāng)前炙手可熱的游戲引擎,由其設(shè)計(jì)的游戲能夠在PC 端和手機(jī)端等多種平臺(tái)間相互移植,并且有很全面的幫助文檔和良好的用戶交互界面,可滿足開發(fā)者的需求。良好的可移植性與交互性使Unity3D 適合開發(fā)各類游戲。文獻(xiàn)[3]通過結(jié)合Unity3D 游戲引擎組件與腳本、怪物智能導(dǎo)航及AssetBundle 加載技術(shù)等設(shè)計(jì)了一款角色扮演游戲。該游戲提供了打怪、升級(jí)、抽獎(jiǎng)、商城等多種玩法和相關(guān)功能。文獻(xiàn)[4]設(shè)計(jì)了一款冒險(xiǎn)闖關(guān)游戲,通過集合不同的游戲類型使關(guān)卡難度層層遞進(jìn)。文獻(xiàn)[5]通過結(jié)合碰撞體與剛體設(shè)計(jì)了對(duì)游戲人物進(jìn)行基本操控的方法。文獻(xiàn)[6]設(shè)計(jì)了一個(gè)腳本語言與解釋器,實(shí)現(xiàn)了一系列的AI 及關(guān)卡邏輯功能。文獻(xiàn)[7]介紹了鍵盤交互技術(shù)與碰撞檢測(cè)技術(shù),給出了游戲開發(fā)項(xiàng)目流程。

        從以上成果可以看出,目前,在基于Unity3D的游戲設(shè)計(jì)與開發(fā)方面已取得一些成果。然而,上述成果還可以進(jìn)一步完善,具體如下:①在系統(tǒng)設(shè)計(jì)方面,可以設(shè)計(jì)多個(gè)低耦合的子系統(tǒng),使得游戲的功能更為完善與全面;②在系統(tǒng)實(shí)現(xiàn)方面,可以進(jìn)一步完善戰(zhàn)斗系統(tǒng)、增加關(guān)卡系統(tǒng)以及裝備系統(tǒng)等,以改善游戲體驗(yàn)。

        本文旨在基于Unity3D 引擎技術(shù),配合DOTween 插件和C#腳本語言,開發(fā)一套單機(jī)冒險(xiǎn)游戲,實(shí)現(xiàn)游戲通用的基礎(chǔ)功能模塊,通過這些功能模塊展示一個(gè)游戲軟件的基本框架,主要功能模塊包括:游戲存檔、限制玩家游戲時(shí)間、選擇關(guān)卡、戰(zhàn)斗、商店、英雄信息展示等。通過該游戲的設(shè)計(jì)與實(shí)現(xiàn),與廣大游戲開發(fā)者分享相關(guān)技術(shù)和方法,幫助開發(fā)者減少開發(fā)成本,簡化開發(fā)流程,使開發(fā)者能夠?qū)W⒂谠O(shè)計(jì)自己獨(dú)有的游戲規(guī)則,實(shí)現(xiàn)具有特色的游戲功能。

        1 基礎(chǔ)技術(shù)概述

        1.1 Unity引擎

        Unity 引擎具有極高的靈活性,開發(fā)者可以為多個(gè)平臺(tái)開發(fā)游戲,如IoS、安卓、Windows等。Unity 引擎還提供了諸多服務(wù),如內(nèi)容發(fā)布平臺(tái),Unity Asset Store(UAS)等,其中,UAS的插件、素材、開發(fā)者社區(qū)、用戶手冊(cè)等都可以很好地幫助開發(fā)者開發(fā)游戲。此外,運(yùn)行Unity腳本會(huì)按預(yù)定順序執(zhí)行事件函數(shù),在腳本的生命周期內(nèi)事件函數(shù)的執(zhí)行順序會(huì)對(duì)游戲效果產(chǎn)生影響。

        1.2 DOTween插件

        DOTween 插件是一個(gè)類型安全的免費(fèi)開源面向?qū)ο髣?dòng)畫引擎,還有大量高級(jí)特性,將它導(dǎo)入U(xiǎn)nity 中可以快速地完成許多動(dòng)畫效果。這款插件可以使開發(fā)人員快速地進(jìn)行各類動(dòng)畫的設(shè)計(jì)和創(chuàng)作,能夠有效提升游戲開發(fā)的效率。DOTween 插件允許通過代碼以簡單的方式制作流暢美觀的動(dòng)畫。使用DOTween 插件實(shí)現(xiàn)的動(dòng)畫效果與補(bǔ)間動(dòng)畫相似,它不僅可以用于UI上,還可以用于物體的移動(dòng)等。

        1.3 C#腳本語言

        Unity腳本主要使用C#語言。C#是一個(gè)簡單的、通用的、面向?qū)ο蟮木幊陶Z言,能夠產(chǎn)生高效率的程序,可以在多種計(jì)算機(jī)平臺(tái)上編譯。C#的跨平臺(tái)特性可以解決Unity引擎的跨平臺(tái)支持問題。實(shí)際上,跨平臺(tái)的是C#編譯后所生成的中間語言(CIL)。

        2 系統(tǒng)需求分析

        由于本游戲是一款單機(jī)冒險(xiǎn)游戲,因此,其功能模塊的實(shí)現(xiàn)比較重要,游戲功能結(jié)構(gòu)如圖1所示。具體功能需求如下:

        圖1 游戲功能結(jié)構(gòu)

        (1)游戲存檔:包含開始新游戲、繼續(xù)游戲和退出游戲。玩家無需注冊(cè)就可以進(jìn)行游戲,開始新游戲時(shí)此前的游戲數(shù)據(jù)會(huì)消失,需要謹(jǐn)慎對(duì)待,因此會(huì)有再次確認(rèn)的提示。

        (2)限制游戲時(shí)間:限制游戲時(shí)間為1 小時(shí)/天,當(dāng)剩余游戲時(shí)間為10分鐘時(shí),計(jì)時(shí)器顏色會(huì)變?yōu)榧t色以便提醒玩家,超出時(shí)間會(huì)彈出警告面板并且無法進(jìn)行游戲。

        (3)選擇關(guān)卡:包含解鎖關(guān)卡、更新通關(guān)星星數(shù)、解鎖章節(jié)。在一個(gè)章節(jié)中,關(guān)卡一默認(rèn)解鎖,玩家通過關(guān)卡一后會(huì)自動(dòng)解鎖關(guān)卡二,同時(shí)記錄關(guān)卡一獲得的星星數(shù)。如果關(guān)卡一未通關(guān)則不解鎖關(guān)卡二,當(dāng)所有關(guān)卡滿星通關(guān)后會(huì)解鎖下一章節(jié)的關(guān)卡。

        (4)商店功能:可以購買武器、英雄,購買成功與否均有反饋。玩家購買武器時(shí)成功與否都會(huì)有提示。購買英雄成功則會(huì)有動(dòng)畫播放,動(dòng)畫播放完后刷新商店,不允許再次購買該英雄。

        (5)英雄展示:展示已購買的英雄信息,可以升級(jí)英雄并裝備武器,同時(shí),可以選擇是否讓英雄加入戰(zhàn)斗隊(duì)列。玩家可以通過左右兩個(gè)按鈕切換想要查看信息的英雄,可以選擇英雄出戰(zhàn)或休戰(zhàn)。升級(jí)英雄需要金幣和經(jīng)驗(yàn),點(diǎn)擊裝備槽可以展示裝備信息或者進(jìn)行裝備,技能也可以升級(jí)。

        (6)戰(zhàn)斗功能:設(shè)計(jì)英雄和敵人基類,實(shí)現(xiàn)敵人AI,可以切換英雄進(jìn)行戰(zhàn)斗,同時(shí)設(shè)計(jì)遠(yuǎn)程攻擊與普通攻擊的實(shí)現(xiàn)類,通關(guān)成功與否均有反饋。

        3 流程分析

        在玩家開始游戲時(shí)會(huì)首先進(jìn)入登錄界面,玩家可以選擇繼續(xù)游戲(讀取之前保存的游戲數(shù)據(jù))或開始新游戲,進(jìn)入游戲后會(huì)開始計(jì)時(shí),如果累計(jì)游戲時(shí)長到達(dá)一小時(shí),會(huì)出現(xiàn)提示界面并無法繼續(xù)游戲,否則每過一分鐘都會(huì)更新一次游戲時(shí)長的數(shù)據(jù)并進(jìn)行游戲時(shí)長的判斷。開始游戲流程如圖2所示。

        圖2 開始游戲流程

        在進(jìn)入戰(zhàn)斗場(chǎng)景后,系統(tǒng)會(huì)檢測(cè)玩家是否按下了切換鍵,按下切換鍵就會(huì)使用隊(duì)列的下一個(gè)英雄進(jìn)行戰(zhàn)斗,當(dāng)前英雄死亡也會(huì)切換為下一個(gè)英雄繼續(xù)戰(zhàn)斗,如果英雄隊(duì)列中的英雄全部死亡則游戲失??;同時(shí)每次英雄受傷與攻擊都會(huì)播放相應(yīng)動(dòng)畫,每次英雄受傷時(shí)會(huì)判斷該英雄是否死亡;敵人如果受傷會(huì)播放受傷動(dòng)畫并判斷是否死亡,如果死亡就播放敵人死亡動(dòng)畫并判斷是否戰(zhàn)斗場(chǎng)景中的敵人全部死亡,如果全部死亡則游戲勝利;敵人會(huì)在游戲場(chǎng)景進(jìn)行巡邏,如果英雄走到敵人的攻擊范圍,敵人會(huì)進(jìn)行攻擊與追擊。戰(zhàn)斗流程如圖3所示。

        圖3 戰(zhàn)斗流程

        4 系統(tǒng)實(shí)現(xiàn)

        本系統(tǒng)實(shí)現(xiàn)了游戲的關(guān)卡子系統(tǒng)、商店子系統(tǒng)、背包子系統(tǒng)、英雄信息展示子系統(tǒng)、戰(zhàn)斗子系統(tǒng)以及存儲(chǔ)子系統(tǒng)等,各子系統(tǒng)所采用的素材引用自文獻(xiàn)[8]。

        4.1 關(guān)卡子系統(tǒng)的實(shí)現(xiàn)

        本子系統(tǒng)實(shí)現(xiàn)的功能包括:跳轉(zhuǎn)場(chǎng)景、章節(jié)選擇、關(guān)卡選擇等。系統(tǒng)實(shí)現(xiàn)的主要功能如下:①跳轉(zhuǎn)場(chǎng)景:通過使用場(chǎng)景類SceneManagement 的LoadScene()方法獲取場(chǎng)景名進(jìn)行跳轉(zhuǎn)。②章節(jié)選擇:運(yùn)行時(shí)通過本地持久化類PlayerPrefs 獲取數(shù)據(jù)判斷章節(jié)是否解鎖,若解鎖則按鈕允許交互,實(shí)現(xiàn)界面如圖4所示。③關(guān)卡選擇:每次加載關(guān)卡選擇界面時(shí)通過獲取數(shù)據(jù)更新顯示當(dāng)前關(guān)卡星星總數(shù),上一關(guān)卡解鎖則下一關(guān)卡可以進(jìn)行挑戰(zhàn),其他關(guān)卡仍無法挑戰(zhàn)。讀取出戰(zhàn)英雄隊(duì)列,若為空則遮擋住關(guān)卡選擇界面使玩家無法進(jìn)行挑戰(zhàn),當(dāng)關(guān)卡星星數(shù)等于總數(shù)時(shí)解鎖下一章,實(shí)現(xiàn)界面如圖5所示。

        圖4 章節(jié)選擇界面

        圖5 關(guān)卡選擇界面

        4.2 商店子系統(tǒng)的實(shí)現(xiàn)

        本子系統(tǒng)實(shí)現(xiàn)的功能包括:商店面板切換、英雄購買、購買成功動(dòng)畫、武器購買等。系統(tǒng)實(shí)現(xiàn)的主要功能如下:①商店面板切換:通過使用Transform.SetSiblingIndex()方法改變面板在Hierarchy層次上的順序,從而實(shí)現(xiàn)面板的切換。②英雄購買:通過CanvasGroup 組件控制透明度,實(shí)現(xiàn)點(diǎn)擊購買按鈕時(shí)打開確認(rèn)購買界面,通過讀取ScriptObject 保存的數(shù)據(jù)展示已設(shè)置好的英雄信息與人物圖,實(shí)現(xiàn)界面如圖6 所示。③購買成功動(dòng)畫:通過使用DOTween 插件里的聯(lián)合動(dòng)畫Sequence 的Append()方法實(shí)現(xiàn)UI動(dòng)畫的設(shè)置,實(shí)現(xiàn)界面如圖7所示。

        圖6 英雄購買界面

        圖7 購買成功界面

        4.3 背包子系統(tǒng)的實(shí)現(xiàn)

        本子系統(tǒng)實(shí)現(xiàn)的功能包括:物品槽生成、物品槽更新和物品信息展示等功能,實(shí)現(xiàn)界面如圖8 所示。系統(tǒng)實(shí)現(xiàn)的主要功能如下:①物品槽生成:手動(dòng)創(chuàng)建一個(gè)Prefab 預(yù)制體后,通過創(chuàng)建列表List 存儲(chǔ)實(shí)例化的預(yù)制體,從而實(shí)現(xiàn)多個(gè)物品槽的制作。②物品槽更新:打開背包界面時(shí)會(huì)對(duì)物品槽的信息進(jìn)行更新,通過ScriptObject 獲取玩家存儲(chǔ)的物品數(shù)據(jù),在物品槽中展示物品圖片與數(shù)量。③物品信息展示:點(diǎn)擊物品槽時(shí)顯示物品信息及出售按鈕,出售數(shù)量為1 時(shí)不許減少出售數(shù)量,未擁有物品數(shù)時(shí)不許增加。

        圖8 背包系統(tǒng)界面

        4.4 英雄信息展示子系統(tǒng)的實(shí)現(xiàn)

        本子系統(tǒng)實(shí)現(xiàn)的功能包括:選擇更換出戰(zhàn)英雄、展示出戰(zhàn)英雄、升級(jí)英雄與武器、給英雄裝備武器等。系統(tǒng)實(shí)現(xiàn)的主要功能如下:①選擇更換出戰(zhàn)英雄:通過True 和False 設(shè)置英雄的出戰(zhàn)狀態(tài),出戰(zhàn)隊(duì)列已滿時(shí)無法增加出戰(zhàn)英雄,通過英雄圖像下方的按鈕實(shí)現(xiàn)選擇英雄或者替換英雄后,出戰(zhàn)隊(duì)列的英雄頭像會(huì)進(jìn)行更新,如圖9 所示。②升級(jí)英雄與武器:通過簡單的條件判斷實(shí)現(xiàn)英雄與裝備的升級(jí),升級(jí)將會(huì)帶來屬性數(shù)值的提升。③給英雄裝備武器:給英雄裝備武器時(shí)需要從玩家背包查找多余的武器,裝備成功則背包武器少一件,同時(shí)武器屬性與角色職業(yè)掛鉤,如劍士不可裝備魔法書,實(shí)現(xiàn)界面如圖10所示。

        圖9 英雄出戰(zhàn)界面

        圖10 英雄裝備界面

        4.5 戰(zhàn)斗子系統(tǒng)的實(shí)現(xiàn)

        本子系統(tǒng)實(shí)現(xiàn)的功能包括:敵人AI、玩家角色控制、切換戰(zhàn)斗角色、普通攻擊與遠(yuǎn)程攻擊、游戲勝利與失敗等。系統(tǒng)實(shí)現(xiàn)的主要功能如下:①敵人AI:在進(jìn)入戰(zhàn)斗場(chǎng)景時(shí)初始化敵人的血條同時(shí)更新敵人信息,如果玩家切換了戰(zhàn)斗英雄,攻擊目標(biāo)也會(huì)轉(zhuǎn)換為玩家當(dāng)前使用的英雄。當(dāng)英雄進(jìn)入攻擊范圍時(shí)會(huì)進(jìn)行攻擊并進(jìn)行追擊,否則敵人會(huì)在兩點(diǎn)間進(jìn)行巡邏。當(dāng)敵人受傷時(shí)生命值減少,播放受傷動(dòng)畫,死亡時(shí)播放死亡動(dòng)畫并銷毀自身,如圖11 所示。②玩家角色控制:設(shè)置英雄可以進(jìn)行二段跳、移動(dòng)、下蹲、攻擊、起立等行為,同時(shí)使用射線檢測(cè)英雄的左右腳是否在地面上以判斷是否可以進(jìn)行二段跳。③切換戰(zhàn)斗角色:按下F 鍵時(shí)可以切換英雄進(jìn)行戰(zhàn)斗,此時(shí)會(huì)更新當(dāng)前英雄信息,同時(shí)攝像機(jī)會(huì)跟隨當(dāng)前英雄,血條信息和出戰(zhàn)英雄面板信息也會(huì)得到更新。④普通攻擊與遠(yuǎn)程攻擊:根據(jù)英雄的職業(yè)分別設(shè)置普通攻擊和遠(yuǎn)程攻擊。普通攻擊的原理是勾選碰撞體的isTrriger屬性,在碰撞敵人的時(shí)候觸發(fā)傷害。遠(yuǎn)程攻擊創(chuàng)建了已設(shè)置好的預(yù)制體進(jìn)行水平運(yùn)動(dòng)攻擊敵人,運(yùn)動(dòng)到一定距離即自我銷毀。⑤游戲勝利與失敗:當(dāng)玩家的所有英雄都被擊敗時(shí)會(huì)暫停游戲,顯示游戲失敗面板;玩家擊敗場(chǎng)景中的所有敵人時(shí)會(huì)暫停游戲,顯示游戲勝利面板,同時(shí)根據(jù)死亡英雄的數(shù)量來判斷以幾顆星通過本關(guān)卡,在勝利面板會(huì)顯示英雄信息,顯示通關(guān)獲得的經(jīng)驗(yàn)和金幣,如圖12所示。

        圖11 戰(zhàn)斗界面

        圖12 戰(zhàn)斗勝利界面

        4.6 存儲(chǔ)子系統(tǒng)的實(shí)現(xiàn)

        存儲(chǔ)子系統(tǒng)的實(shí)現(xiàn)主要采用PlayerPrefs。PlayerPrefs是一個(gè)用于數(shù)據(jù)本地持久化保存與讀取的類,它將數(shù)據(jù)以鍵值對(duì)的形式保存在本地,使用它能夠輕松實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ),在本系統(tǒng)中使用PlayerPrefs存儲(chǔ)了關(guān)卡星星數(shù)等。

        由于ScrtptObject 的特性是在編輯模式或運(yùn)行模式下修改的數(shù)據(jù)在游戲退出后不會(huì)保存,故開始新游戲只需要?jiǎng)h除已保存的PlayerPrefs鍵值對(duì)。繼續(xù)游戲相對(duì)復(fù)雜,在保存游戲數(shù)據(jù)時(shí)需要使用Json 將ScriptObject 序列化轉(zhuǎn)換為String 類型,再將String 類型保存在PlayerPrefs鍵值對(duì)中,讀取數(shù)據(jù)則需要讀取鍵值對(duì)的String,最后將其反序列化為ScriptObject。

        5 結(jié)語

        本文基于Unity 游戲引擎設(shè)計(jì)和實(shí)現(xiàn)了一款單機(jī)冒險(xiǎn)游戲,該游戲無需設(shè)計(jì)復(fù)雜的算法,采用C#腳本語言實(shí)現(xiàn),代碼只需要邏輯清晰即可實(shí)現(xiàn)。本游戲開發(fā)過程中注重提高代碼的復(fù)用性以及降低模塊間的耦合性,節(jié)省了開發(fā)成本。本文具體做了以下工作:

        (1)在游戲?qū)崿F(xiàn)方面,主要實(shí)現(xiàn)了關(guān)卡子系統(tǒng)、商店子系統(tǒng)、背包子系統(tǒng)、英雄信息展示子系統(tǒng)、戰(zhàn)斗子系統(tǒng)、存儲(chǔ)子系統(tǒng)等,完成了游戲的基礎(chǔ)功能模塊。

        (2)在素材制作方面,通過綁定骨骼,制作了多個(gè)英雄的多個(gè)骨骼動(dòng)畫,通過對(duì)英雄行為動(dòng)畫進(jìn)行精細(xì)的調(diào)整,實(shí)現(xiàn)了良好的動(dòng)畫效果,同時(shí)使用序列幀制作了敵人的各種行為動(dòng)畫。

        (3)在界面設(shè)計(jì)方面,積極尋找優(yōu)秀的界面設(shè)計(jì)提升審美,最終實(shí)現(xiàn)了良好的界面設(shè)計(jì),同時(shí)還增加了部分UI動(dòng)畫。

        本游戲的設(shè)計(jì)和實(shí)現(xiàn)對(duì)于基于Unity 游戲引擎的單機(jī)版游戲開發(fā)具有積極的借鑒作用。

        猜你喜歡
        動(dòng)畫界面游戲
        做個(gè)動(dòng)畫給你看
        動(dòng)畫發(fā)展史
        國企黨委前置研究的“四個(gè)界面”
        我的動(dòng)畫夢(mèng)
        文苑(2019年22期)2019-12-07 05:28:56
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
        人機(jī)交互界面發(fā)展趨勢(shì)研究
        數(shù)獨(dú)游戲
        瘋狂的游戲
        飛碟探索(2016年11期)2016-11-14 19:34:47
        爆笑游戲
        我是動(dòng)畫迷
        亚洲成av人最新无码| 亚洲麻豆视频免费观看| 狠狠色欧美亚洲狠狠色www| 午夜福利试看120秒体验区| 国自产偷精品不卡在线| 国产美女亚洲精品一区| 成人一区二区三区国产| 日本一区二区三区免费播放| 国产无遮挡又黄又爽在线视频| 色www亚洲| 亚洲av中文字字幕乱码软件| 99re6在线视频精品免费下载| 毛片内射久久久一区| 亚洲毛片αv无线播放一区| 91大神蜜桃视频在线观看| 亚洲国产精品国自产拍久久蜜av| 久久成人国产精品免费软件| 精品国产福利一区二区在线| 精品中文字幕日本久久久| 97精品人妻一区二区三区在线| 在线观看精品视频网站| 亚洲综合性色一区| 天堂av在线播放观看| 日本一二三区在线观看视频| 丰满人妻熟妇乱又伦精品软件| 亚洲天堂资源网| 国产在线播放免费人成视频播放 | 亚洲AV无码国产精品色午夜软件| 日本午夜理论一区二区在线观看| 少妇愉情理伦片丰满丰满| 无码专区天天躁天天躁在线| 日韩AV无码乱伦丝袜一区| 美女免费视频观看网址| 国产av麻豆mag剧集| 日韩AV无码一区二区三| 青青草成人原视频在线播放视频| 美女网站免费观看视频| 日本三级欧美三级人妇视频 | 久久亚洲精品ab无码播放| 不卡a v无码在线| 久久亚洲春色中文字幕久久|