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

        ?

        基于Unity3D的多通道下服務(wù)器客戶端同步

        2015-09-27 00:33:25汪瑞四川大學計算機學院成都610065
        現(xiàn)代計算機 2015年24期
        關(guān)鍵詞:界面游戲

        汪瑞(四川大學計算機學院,成都 610065)

        基于Unity3D的多通道下服務(wù)器客戶端同步

        汪瑞
        (四川大學計算機學院,成都610065)

        0 引言

        在計算機技術(shù)飛速發(fā)展,信息化水平不斷提高的今天,以計算機集群為驅(qū)動的多通道技術(shù)已經(jīng)越來越為人所熟知,得到普遍應用。多通道下的服務(wù)器客戶端同步技術(shù)是指當系統(tǒng)中存在單個服務(wù)器,多個客戶機時,保證每個客戶機都與服務(wù)器同步運行。而基于Unity3D引擎的多通道同步技術(shù)則需要先使用Unity分別編譯出服務(wù)器和客戶機程序,然后保證客戶機與服務(wù)器同步運行,更具挑戰(zhàn)性和創(chuàng)新性,當結(jié)合3D球幕的時候,會帶來諸如3D全景游戲等不一樣的體驗。

        在基于Unity3D引擎的多通道同步技術(shù)的設(shè)計中,需要考慮很多問題,如多主機下的碰撞檢測(如何保證能在服務(wù)器和客戶機上都能實現(xiàn)碰撞檢測,并產(chǎn)生碰撞的粒子效果);再如畫面的同步更新,這里主要關(guān)注和解決的是動態(tài)目標,包括人物移動、子彈飛行等的同步效果。基于Unity3D引擎的多通道同步技術(shù)就是為了解決這些問題而設(shè)計的,通過該項技術(shù),用戶可以正確實現(xiàn)C/S同步,并且可以清楚看見同步效果,如主角移動、子彈飛行等。

        1 多通道下服務(wù)器與客戶端同步的關(guān)鍵技術(shù)與實現(xiàn)過程

        網(wǎng)絡(luò)同步基本要義:實現(xiàn)服務(wù)器與客戶端的交互以及客戶端與客戶端的交互,而這首先要建立服務(wù)器與客戶端之間的連接,組成C/S結(jié)構(gòu),服務(wù)器一般相對獨立,可支持多個客戶端的訪問。服務(wù)器與客戶端交互原理為:客戶端向服務(wù)器發(fā)送請求,服務(wù)器給予反饋;或者服務(wù)器向客戶端發(fā)送請求,客戶端做出應答。在Unity引擎下,可以使用兩種方法建立客戶端與服務(wù)器之間的連接:

        (1)基于UDP協(xié)議的無連接套接字(Socket)方式

        使用無連接的套接字,我們能夠在自我包含的數(shù)據(jù)包里發(fā)送消息,采用獨立的讀函數(shù)讀取整個消息所讀取的消息是使用獨立的發(fā)送函數(shù)發(fā)送的。UDP是一種無連接的協(xié)議,因此,為了使服務(wù)器端應用能夠發(fā)送和接收UDP數(shù)據(jù)包,我們必須要做到以下兩點:創(chuàng)建一個Socket對象;將創(chuàng)建的套接字對象(Socket)與本地IPEndPoint(IP地址/端口組合)進行綁定。這樣,所創(chuàng)建的套接字就能夠在IPEndPoint上接收流入的UDP數(shù)據(jù)包或者將流出的UDP數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)中任意其他設(shè)備上。具體創(chuàng)建過程參見圖1。

        圖1 簡單的UDP服務(wù)器的創(chuàng)建流程

        建立UDP客戶端應用流程與服務(wù)器非常相似,都必須先要建立套接字對象以及本地IPEndpoint對象(IP地址/端口組合),由于客戶機不需要在指定的UDP端口等待流入的數(shù)據(jù),因此不需要使用Bind()方法,也即不用將套接字Socket與IPEndpoint對象進行綁定,而是使用在數(shù)據(jù)發(fā)送時系統(tǒng)隨機指定的一個UDP端口,并且使用同一端口接收返回的消息。

        (2)Unity系統(tǒng)內(nèi)的網(wǎng)絡(luò)方法(Network)

        此時在本地創(chuàng)建服務(wù)器時,為了保證服務(wù)器能接收到客戶端發(fā)來的請求,需要給接收請求腳本所綁定的對象添加網(wǎng)絡(luò)視圖組件(一般是添加到主攝像中)要先在場景中添加網(wǎng)絡(luò)視圖組件,并判斷聯(lián)網(wǎng)狀態(tài),然后再創(chuàng)建服務(wù)器連接,具體流程參見圖2。

        在客戶端的創(chuàng)建過程中,為了確??蛻舳四芟蚍?wù)器發(fā)送消息請求,并且使得服務(wù)器能夠?qū)碜阅骋豢蛻舳说恼埱蠓祷亟o(廣播消息)連接到服務(wù)器的所有客戶端,也必須要先添加網(wǎng)絡(luò)視圖組件—Network View;之后可以使用 RPC向服務(wù)器發(fā)送消息:networkView.RPC(“Function”,RPCMode;Message);其 中Function為服務(wù)器腳本中已經(jīng)定義的接收消息函數(shù):[RPC]void Function();RPCMode為發(fā)送消息的模式,有五種,如向服務(wù)器發(fā)送;發(fā)送給除發(fā)送者外,當前連接到服務(wù)器的每一個人;發(fā)送給連接到服務(wù)器的所有人等。Message為發(fā)送的消息。本文的實驗及實驗結(jié)果是采用第二種方法實現(xiàn)的。

        圖2  Unity創(chuàng)建服務(wù)器流程

        2 太空射擊游戲制作

        本文設(shè)計游戲模式為太空射擊游戲,游戲以太空為背景,在游戲中,主角和敵人是不同的太空飛行器,游戲開始后,主角會迎著敵方的火力前進,并能向敵人發(fā)射子彈并摧毀敵人。為了更好的表現(xiàn)同步效果,游戲中設(shè)定兩個主角Player1,Player2;Player1由創(chuàng)建游戲的服務(wù)器端玩家控制,Player2由聯(lián)入局域網(wǎng)服務(wù)器的客戶端玩家控制,在游戲運行過程中,兩個游戲中的玩家信息(如位置、射擊等)會相互同步實時更新。另:部分游戲模型來源于網(wǎng)絡(luò)。

        此節(jié)僅說明游戲場景背景的創(chuàng)建和游戲主角Player(飛船)的添加,其他的諸如攝像機和燈光的設(shè)計、添加敵人等由于篇幅關(guān)系不在贅述。

        游戲背景的設(shè)計:菜單欄選擇File->New Scene,創(chuàng)建一個新場景;菜單欄選擇GameObject->Create Other->Plane,創(chuàng)建一個平面體作為天空背景模型;在Project右鍵選擇Create->Material創(chuàng)建一個材質(zhì)球,命名為Background,選擇Select指定其貼圖;然后將Background材質(zhì)球拖至Scene窗口的天空背景模型上為其指定材質(zhì)。

        創(chuàng)建主角:在Project窗口選中Player1.fbx,將其拖動到Hierarchy窗口創(chuàng)建服務(wù)器端玩家飛船模型的游戲體,并在Inspector窗口設(shè)定其坐標(Position),旋轉(zhuǎn)角度(Rotation)和縮放程度(Scale)。同理可添加客戶端對應玩家飛船Player2。

        圖3 游戲場景效果圖

        其他游戲元素的設(shè)定略,編譯各游戲腳本略。最終游戲場景效果如圖3。

        3 服務(wù)器和客戶端同步的實現(xiàn)(交互過程的實現(xiàn))

        我們在游戲場景中添加的兩個飛船分別命名為Player1,Player2,分別由服務(wù)器和客戶端兩個玩家控制,類似于局域網(wǎng)游戲模式。當創(chuàng)建游戲的玩家1(服務(wù)器端)或者連接到服務(wù)器的玩家2(客戶端)按下鍵盤上的W、S、A、D鍵時,能控制所對應的飛船Player1、Player2上下左右飛行,當按下F鍵時,飛船能沿著飛行方向發(fā)射子彈,擊打敵人。我們要做的同步即是將服務(wù)器端界面變化反映到客戶端或者將客戶端界面作出的更新反映到服務(wù)器游戲中,并且做出相應更新。例如當建立游戲的服務(wù)器端玩家按下W鍵控制Player1向前移動的時候,服務(wù)器端游戲程序會響應,并發(fā)送信號(發(fā)送W字母信息)到客戶端程序,客戶端接收到該信號,也作出相同的響應(客戶端界面上人物Player1也會向前移動);又或者當在客戶端按下F鍵,飛船Player2向敵人發(fā)射子彈,在服務(wù)器端飛船Player2也會向敵人發(fā)射子彈……

        聲明發(fā)送網(wǎng)絡(luò)消息函數(shù):[RPC]

        //初始化服務(wù)器

        以服務(wù)器端發(fā)送W鍵為例:[RPC]

        當服務(wù)器端玩家連續(xù)按下F鍵,操控左邊飛船Player1發(fā)射子彈時,可以看到在客戶端游戲界面上,飛船Player1也同時向前發(fā)射子彈,同時在服務(wù)器界面左上角顯示了連接到服務(wù)器的客戶端信息 (端口號等)。這表明服務(wù)器已正確創(chuàng)建,客戶端已經(jīng)連接入該服務(wù)器,并且二者能夠正確的進行交互,且程序執(zhí)行效果好,靈敏度較高。

        服務(wù)器端及客戶端運行效果分別如圖4、圖5所示:

        圖4 服務(wù)器端運行界面

        圖5 客戶端運行界面

        4 結(jié)語

        介紹兩種在Unity引擎內(nèi)創(chuàng)建服務(wù)器和客戶端的過程,并制作了一個簡單的射擊游戲具體實現(xiàn)了第二種方法。同時在日常的一些項目開發(fā)中使用該種方法,效果十分良好。

        [1]宣雨松,王軍花.Unity3D游戲開發(fā)[M].北京:人民郵電出版社,2012.

        [2]金璽曾.Unity3D手機游戲開發(fā)[M].北京:清華大學出版社,2013.

        [3]Richard Blum.C#網(wǎng)絡(luò)應用編程[M].高春蓉譯.北京:電子工業(yè)出版社,2003.

        [4]周存杰著.Visual C#.NET網(wǎng)絡(luò)核心編程[M].北京:清華大學出版社,2002.

        Unity3D;Multi-Channel;Server;Client

        Server and Client Synchronous in Multi-Channel Based on Unity3D

        WANG Rui
        (College of Computer Science,Sichuan University,Chengdu 610065)

        1007-1423(2015)24-0026-04

        10.3969/j.issn.1007-1423.2015.24.007

        汪瑞(1991-),男,安徽安慶人,碩士研究生,研究方向為圖形圖像技術(shù)

        2015-06-19

        2015-07-21

        近年來,多通道技術(shù)已經(jīng)日益成熟并得到廣泛應用,而基于Unity3D引擎的多通道下服務(wù)器客戶端同步,是進行Unity多人游戲開發(fā)的關(guān)鍵步驟。介紹兩種創(chuàng)建服務(wù)器和客戶端的方法,并使用第二種方法設(shè)計適合局域網(wǎng)中兩名玩家操作的天空射擊游戲,實驗結(jié)果表明,該方法可行且靈敏度較高。

        Unity3D;多通道;服務(wù)器;客戶端

        國家863計劃項目(No.2013AA013902)

        In recent years,the multi-channel technology has become more and mature,server and client synchronous in multi-channel based on U-nity3D is the key process to develop multi-players game in Unity.Introduces two methods to create server and client,and uses the second method design the spaceshotting game suitable for two players in the local area network,the experimental result shows that this method is feasible and has high sensitivity.

        猜你喜歡
        界面游戲
        國企黨委前置研究的“四個界面”
        當代陜西(2020年13期)2020-08-24 08:22:02
        基于FANUC PICTURE的虛擬軸坐標顯示界面開發(fā)方法研究
        空間界面
        金秋(2017年4期)2017-06-07 08:22:16
        游戲
        電子顯微打開材料界面世界之門
        人機交互界面發(fā)展趨勢研究
        數(shù)獨游戲
        瘋狂的游戲
        飛碟探索(2016年11期)2016-11-14 19:34:47
        爆笑游戲
        第八章直接逃出游戲
        小學科學(2015年7期)2015-07-29 22:29:00
        全部孕妇毛片丰满孕妇孕交| av一区二区在线网站| 一二三四五区av蜜桃| 国产女人高潮叫床视频| 午夜一级韩国欧美日本国产| 日本一区二区三区中文字幕视频| 亚洲不卡av一区二区三区四区 | 熟女少妇丰满一区二区| 国模91九色精品二三四| 国产女主播白浆在线观看| 国产成人+亚洲欧洲+综合| 亚洲红杏AV无码专区首页| 青青久在线视频免费视频| 潮喷大喷水系列无码久久精品| 77777亚洲午夜久久多人| 胳膊肘上有白色的小疙瘩| 男女做羞羞事的视频网站| 国精品午夜福利视频不卡| 中文字幕亚洲无线码在一区| 久久久精品亚洲懂色av| 国产91精品高潮白浆喷水| 伊人久久大香线蕉亚洲五月天| 国产一区二区三区小说| av大片网站在线观看| 欧美xxxxx在线观看| 区久久aaa片69亚洲| 91久国产在线观看| 黄片视频大全在线免费播放| 性色av闺蜜一区二区三区| 国产成人精品三级在线影院| 精品人妻午夜中文字幕av四季| 中文字幕亚洲欧美在线不卡| 色偷偷88888欧美精品久久久| 胳膊肘上有白色的小疙瘩| 中文字幕隔壁人妻欲求不满| 亚洲国产成人影院在线播放| AV无码中文字幕不卡一二三区| 日本一区二区三区免费| 无码av中文一区二区三区桃花岛 | 在线观看无码一区二区台湾| 一区二区日本免费观看|