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

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

2021-11-17 23:33:04劉夢(mèng)穎馬宏琳
河南科技 2021年17期

劉夢(mèng)穎 馬宏琳

摘 要:目前,數(shù)字游戲產(chǎn)業(yè)已經(jīng)成為數(shù)字經(jīng)濟(jì)不可或缺的一部分。本文以Unity平臺(tái)為基礎(chǔ),圍繞冒險(xiǎn)游戲的設(shè)計(jì)目標(biāo),闡述了游戲開(kāi)發(fā)的整個(gè)過(guò)程。玩家可以通過(guò)計(jì)算機(jī)客戶端進(jìn)行聯(lián)機(jī)對(duì)戰(zhàn),操控機(jī)器人發(fā)射激光射線進(jìn)行大賽比拼。同時(shí),設(shè)計(jì)了雪天特效,并根據(jù)玩家數(shù)量的不同,動(dòng)態(tài)擴(kuò)容校園場(chǎng)景地圖。經(jīng)驗(yàn)證,系統(tǒng)運(yùn)行時(shí)網(wǎng)絡(luò)資源和設(shè)備資源占用率低,實(shí)現(xiàn)效果良好。

關(guān)鍵詞:Unity;Photon Engine;網(wǎng)絡(luò)游戲

中圖分類(lèi)號(hào):TP317文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1003-5168(2021)17-0030-03

Design and Implementation of Adventure Game Based on Unity

LIU Mengying MA Honglin

(School of Information Science and Engineering, Henan University of Technology,Zhengzhou Henan 450001)

Abstract: At present, the digital game industry has become an indispensable part of the digital economy. Based on the Unity platform, the entire process of game development is explained around the design goals of adventure games in this paper. Players can conduct online battles through the computer client, and control robots to emit laser rays for competition. At the same time, special effects in snow are designed, and the campus scene map is dynamically expanded according to the number of players. It has been verified that the network resource and equipment resource occupancy rate is low when the system is running, and the implementation effect is good.

Keywords: unity;photon engine;online games

計(jì)算機(jī)游戲歷經(jīng)幾十年的發(fā)展,由最初使用FORTRAN程序編寫(xiě)躲避遮擋物場(chǎng)景游戲開(kāi)始,逐漸衍生出多人對(duì)戰(zhàn)、扮演角色(RPG)、卡牌休閑、放置養(yǎng)成、橫板闖關(guān)等各式各樣的游戲;從平面2D游戲到立體生動(dòng)的3D游戲,在玩法創(chuàng)意、游戲畫(huà)面設(shè)計(jì)以及開(kāi)發(fā)技術(shù)方面的發(fā)展水平都令人觸目興嘆[1]。其中,多人冒險(xiǎn)網(wǎng)絡(luò)游戲是通過(guò)互聯(lián)網(wǎng)將大量玩家即時(shí)聯(lián)系起來(lái),在虛擬世界中進(jìn)行冒險(xiǎn)。它不僅能帶給用戶身臨其境的游戲體驗(yàn),也更注重游戲的互動(dòng)性與趣味性。

1 Unity與Photon引擎結(jié)合開(kāi)發(fā)冒險(xiǎn)游戲

PUN(Photon Unity Networking)是一個(gè)Unity多人游戲插件包。它提供了身份驗(yàn)證選項(xiàng),并能夠快速、可靠地通過(guò)Photon后端實(shí)現(xiàn)游戲內(nèi)部通信。PUN可以輸出幾乎所有Unity支持的平臺(tái),它提供了兩個(gè)C#接口IPunCallbacks和IPunObservable,可以在類(lèi)中實(shí)現(xiàn)[2]。

本游戲軟件采用Unity進(jìn)行開(kāi)發(fā),分為客戶端和服務(wù)器端。客戶端包含接口、數(shù)據(jù)、界面、資源、網(wǎng)絡(luò)、房間和戰(zhàn)斗管理系統(tǒng)等;服務(wù)器端處理游戲運(yùn)行時(shí)產(chǎn)生的數(shù)據(jù),包括玩家數(shù)據(jù)、房間數(shù)據(jù)和戰(zhàn)場(chǎng)數(shù)據(jù)等,同時(shí)對(duì)網(wǎng)絡(luò)通信進(jìn)行管理。游戲支持個(gè)人計(jì)算機(jī)(PC)運(yùn)行終端,并且具有良好的自適應(yīng)性[3]。

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

2.1 游戲總體設(shè)計(jì)

針對(duì)冒險(xiǎn)游戲的特點(diǎn),采用Unity客戶端與Photon服務(wù)器相結(jié)合的架構(gòu)進(jìn)行設(shè)計(jì),通過(guò)Unity客戶端之間的信息傳遞,實(shí)現(xiàn)同時(shí)多人在線游戲。游戲整體框架設(shè)計(jì)如圖1所示,游戲流程設(shè)計(jì)如圖2所示。在游戲功能的總體設(shè)計(jì)中,分別設(shè)計(jì)客戶端功能與服務(wù)器端功能,主要的功能模塊可劃分為四大模塊,即戰(zhàn)斗模塊、界面模塊、場(chǎng)景模塊和網(wǎng)絡(luò)模塊。游戲模塊設(shè)計(jì)如圖3所示。對(duì)于多人在線的網(wǎng)絡(luò)同步,采用玩家輸入請(qǐng)求,然后通過(guò)客戶端向服務(wù)器提交請(qǐng)求的方式來(lái)實(shí)現(xiàn)。

2.2 游戲詳細(xì)設(shè)計(jì)

基于游戲的總體設(shè)計(jì),進(jìn)行游戲各部分的詳細(xì)設(shè)計(jì),主要包括玩家模型、游戲場(chǎng)景、游戲天氣、游戲界面、游戲管理器和關(guān)卡、玩家生命值、網(wǎng)絡(luò)同步等功能。

2.2.1 玩家模型設(shè)計(jì)。在Blender軟件中建造好機(jī)器人模型后導(dǎo)入U(xiǎn)nity,使其成為一個(gè)無(wú)須連接PUN就可以正常工作的預(yù)制體。

2.2.2 游戲場(chǎng)景設(shè)計(jì)。該游戲擁有4個(gè)場(chǎng)景,根據(jù)玩家人數(shù)的不同分別加載不同的游戲競(jìng)技場(chǎng)景,不僅節(jié)省網(wǎng)絡(luò)資源和硬件資源,而且滿足不同玩家人數(shù)的場(chǎng)景設(shè)置需要。當(dāng)只有一名玩家時(shí),進(jìn)入等待大廳的游戲場(chǎng)景。超過(guò)兩人時(shí),玩家進(jìn)入多人競(jìng)技場(chǎng)場(chǎng)景,該場(chǎng)景設(shè)計(jì)仿照河南工業(yè)大學(xué)校園的一角,運(yùn)用草地、云朵、小山、樹(shù)木、小橋等多組模型搭建而成。當(dāng)玩家人數(shù)為三人或四人時(shí),場(chǎng)景模型數(shù)量和場(chǎng)景架構(gòu)也隨之變化[4]。

2.2.3 游戲天氣設(shè)計(jì)。利用Unity中的Particle System組件模擬了雪天等特效。

2.2.4 游戲界面設(shè)計(jì)。利用Canvas和Button等組件創(chuàng)建界面和按鈕,并使用PlayerPrefs插件記住玩家名字,創(chuàng)建Player UI界面動(dòng)態(tài)展示玩家生命值狀態(tài)。

2.2.5 游戲管理器和關(guān)卡設(shè)計(jì)。設(shè)計(jì)LoadArena()方法,將基于所在房間的PlayerCount屬性加載至適當(dāng)?shù)姆块g。利用GameManager腳本監(jiān)聽(tīng)連接及斷開(kāi)連接的玩家情況。

2.2.6 游戲玩家設(shè)計(jì)。獲取Animator組件,編寫(xiě)玩家對(duì)于角色的控制,使玩家能夠使用輸入設(shè)備來(lái)操作該角色,完成行走、跑、跳躍、開(kāi)火等多種動(dòng)作互動(dòng)[5]。

2.2.7 玩家生命值設(shè)計(jì)。當(dāng)玩家被光束撞擊時(shí),整個(gè)光束撞擊過(guò)程要實(shí)時(shí)顯示生命值的減少過(guò)程。另外,當(dāng)對(duì)戰(zhàn)時(shí)玩家的生命值降為0,系統(tǒng)將判定其游戲失敗并退出房間。進(jìn)行代碼設(shè)計(jì)時(shí),先在GameManager腳本中創(chuàng)建一個(gè)離開(kāi)房間的方法,然后在玩家腳本的Update方法中添加一個(gè)if (Health <= 0f)判定方法,再通過(guò)調(diào)用GameManager腳本中的LeaveRoom()方法退出房間。

2.2.8 戰(zhàn)斗系統(tǒng)設(shè)計(jì)。游戲設(shè)計(jì)從機(jī)器人眼里發(fā)射出的激光作為戰(zhàn)斗系統(tǒng)的武器,將激光束與機(jī)器人的頭部綁定,玩家按下開(kāi)火鍵時(shí),激光束將從機(jī)器人眼里發(fā)射出來(lái)。

2.2.9 玩家相機(jī)設(shè)計(jì)。根據(jù)增加的偏移量來(lái)計(jì)算所需的相機(jī)位置,達(dá)到跟隨玩家的效果。使用距離參數(shù)反映水平偏移,使用高度參數(shù)反映垂直偏移,然后使用Lerping平滑運(yùn)動(dòng)以趕上所需的位置,最后使用簡(jiǎn)單的LookAt使相機(jī)始終指向播放器。

2.2.10 服務(wù)器端運(yùn)行。本游戲在運(yùn)行客戶端時(shí)必須連接Photon服務(wù)器,提前架設(shè)服務(wù)器端。服務(wù)器引擎封裝了一系列網(wǎng)絡(luò)通信方法,通過(guò)調(diào)用這些方法,可以實(shí)現(xiàn)網(wǎng)絡(luò)通信和網(wǎng)絡(luò)同步。

2.2.11 網(wǎng)絡(luò)同步設(shè)計(jì)。通過(guò)Unity提供的Photon Transform View組件和Photon Animator View組件進(jìn)行基礎(chǔ)的同步。因?yàn)榧す馕淦髦挥性趐hotonView.IsMine為真時(shí)才需要工作,為此在PlayerManager腳本中繼承IPunObservable接口來(lái)手動(dòng)同步IsFiring布爾值。在IPunObservable.OnPhotonSerializeView方法中,獲得一個(gè)變量流,判定玩家是本地玩家(即photonView.IsMine == true)時(shí)才能使用stream.SendNext()將IsFiring值附加到數(shù)據(jù)流中寫(xiě)入,否則只能使用stream.ReceiveNext()閱讀。另外,生命值的網(wǎng)絡(luò)同步方法和激光武器類(lèi)似,同樣使用變量流進(jìn)行同步設(shè)計(jì)。

2.3 游戲?qū)崿F(xiàn)效果

圖4至圖7展示了多名玩家登錄、連接游戲客戶端、等待到進(jìn)行多人對(duì)戰(zhàn)的整個(gè)過(guò)程。實(shí)踐證明,游戲運(yùn)行效果良好。

3 結(jié)語(yǔ)

本文以Unity平臺(tái)為基礎(chǔ),結(jié)合Photon引擎技術(shù)與Blender模型設(shè)計(jì),采用C#語(yǔ)言進(jìn)行開(kāi)發(fā)和技術(shù)研究,實(shí)現(xiàn)了以機(jī)器人為主視角的網(wǎng)絡(luò)對(duì)戰(zhàn)冒險(xiǎn)游戲。實(shí)踐證明,Unity與Photon技術(shù)相結(jié)合可以高效地進(jìn)行網(wǎng)絡(luò)冒險(xiǎn)游戲的開(kāi)發(fā),游戲運(yùn)行狀態(tài)和可操作性良好。

參考文獻(xiàn):

[1]呂學(xué)琴,蘇閏,陳彥軍.基于Unity引擎制作塔防游戲[J].智能計(jì)算機(jī)與應(yīng)用,2018(5):95-99.

[2]龔高強(qiáng).基于Unity引擎的3D游戲客戶端系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2016:20-24.

[3]翟濤.基于Unity3D的游戲智能行為體的研究與設(shè)計(jì)[D].沈陽(yáng):沈陽(yáng)師范大學(xué),2018:17-20.

[4]王海嘯.基于Unity3D游戲引擎的三維動(dòng)畫(huà)虛擬攝像機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京大學(xué),2014:18-19.

[5]邱競(jìng)峰,王洪源,陳慕羿.Unity3D引擎實(shí)現(xiàn)游戲人物的基本操控[J].中國(guó)新技術(shù)新產(chǎn)品,2016(19):24-25.

主站蜘蛛池模板: 在线中文字幕网| 91口爆吞精国产对白第三集 | 午夜不卡福利| 日韩精品成人在线| 日本成人福利视频| 久久人搡人人玩人妻精品| 午夜精品久久久久久久无码软件| 夜夜操国产| 人妻丰满熟妇αv无码| 成年A级毛片| 亚洲欧美成人在线视频| 国产sm重味一区二区三区| 99热这里只有精品2| 欧美翘臀一区二区三区| 国产高清免费午夜在线视频| 亚洲全网成人资源在线观看| 黄色免费在线网址| www.亚洲一区二区三区| 国产在线视频自拍| 久久久久无码国产精品不卡| 亚洲成人在线网| 国产精品视频公开费视频| 香蕉网久久| 亚洲av无码成人专区| 亚洲区欧美区| 国内自拍久第一页| 国产精品美女自慰喷水| 成人韩免费网站| 天堂成人在线| 58av国产精品| 亚洲精品卡2卡3卡4卡5卡区| 2020亚洲精品无码| 久久网欧美| 亚洲三级成人| 久久久久青草线综合超碰| 国产成人精品亚洲日本对白优播| av一区二区无码在线| 97国产在线视频| 日韩精品久久无码中文字幕色欲| 亚洲欧美另类久久久精品播放的| 日韩欧美高清视频| 人妻丰满熟妇AV无码区| 动漫精品中文字幕无码| 99热最新网址| 久久美女精品国产精品亚洲| 制服丝袜国产精品| 人人爱天天做夜夜爽| 国产交换配偶在线视频| 亚洲高清无码久久久| 91丝袜美腿高跟国产极品老师| 欧美成人精品一区二区 | 亚洲成人免费看| 97在线公开视频| 久久国产免费观看| 玩两个丰满老熟女久久网| 91日本在线观看亚洲精品| 77777亚洲午夜久久多人| 在线观看视频99| 97超碰精品成人国产| 久久精品只有这里有| 国产成人综合久久精品下载| 一级毛片在线播放免费| 黄片一区二区三区| 天天干天天色综合网| 在线观看国产网址你懂的| 红杏AV在线无码| 成人精品在线观看| 国产一区二区精品福利| 色综合成人| 欧美激情视频一区| 在线观看国产黄色| 亚洲三级成人| 中文无码精品A∨在线观看不卡 | 色噜噜狠狠狠综合曰曰曰| 五月天丁香婷婷综合久久| 欧美成一级| 一级香蕉人体视频| 久久人搡人人玩人妻精品| 亚洲日韩精品伊甸| 国产喷水视频| 九色在线观看视频| 亚洲精品在线影院|