亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Unity3d中網絡傳輸協議protobuf的示例分析

發布時間:2021-12-16 13:57:19 來源:億速云 閱讀:686 作者:小新 欄目:大數據

這篇文章將為大家詳細講解有關Unity3d中網絡傳輸協議protobuf的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Google Protocol Buffer( 簡稱 Protobuf) 是 Google 公司內部的混合語言數據標準,目前已經正在使用的有超過 48,162 種報文格式定義和超過 12,183 個 .proto 文件。他們用于 RPC 系統和持續數據存儲系統。

Protocol Buffers 是一種輕便高效的結構化數據存儲格式,可以用于結構化數據串行化,或者說序列化。它很適合做數據存儲或 RPC 數據交換格式。可用于通訊協議、數據存儲等領域的語言無關、平臺無關、可擴展的序列化結構數據格式。目前提供了 C++、Java、Python 三種語言的 API。

google protocol buffers的應用范圍非常廣泛,但對于unity3d開發者來說,protobuf的最大用處在于編寫網絡游戲時,可以用它來傳輸數據內容,例如網絡游戲中,玩家登錄操作,需要傳輸用戶名account和密碼password給服務器,服務器驗證成功,發送給玩家一條數據(如int a或者enum a),玩家收到數據后,依據a的值來判斷,a==1表示可以登錄,a==0表示密碼錯誤不可以登錄,這個過程中客戶端和服務器之間傳輸網絡數據用的就是Protobuf。

如果你沒有用過protobuf,下載demo,然后跟隨本文實踐一下,那么針對protobuf的簡單使用應該是沒問題的;如果你一直在用protobuf,但是一直是別人寫好的,那么研究一下本文demo,可以讓你了解protobuf在unity3d中的使用搭建。

demo的github地址:single010203/Unity-Network-Protobuf

下載完成后,解壓得到如下圖1-圖2所示工程結構圖:


Unity3d中網絡傳輸協議protobuf的示例分析

圖1 networktest工程結構圖

Unity3d中網絡傳輸協議protobuf的示例分析

圖2 unity3d工程圖

工程實現了網絡游戲中,用戶登錄大廳到進入房間這么個過程,從用戶登錄->用戶進入大廳-->用戶進入房間,到用戶退出房間-->用戶退出大廳-->用戶退出,一共6個操作,代表了客戶端與服務器的6次消息傳輸。接下來,我們按照步驟把這個過程實踐出來。

1編寫.proto文件

打開圖1中所示protoToCs文件夾,在此文件夾中新建EnterLiveHallMsg.proto文件,并輸入如下圖3所示內容:

EnterLiveHallReq代表用戶發送登錄請求數據結構;

EnterLiveHallEsp代表服務器返回的結果。

Unity3d中網絡傳輸協議protobuf的示例分析

圖3 編寫.proto文件

文件夾中相關的proto文件都已經編寫好了,當然你可以自定義隨意編寫幾個也沒問題。

2 生成.cs類

在protoToCs文件夾中找到批處理文件:protoToCs.bat,該工具調用protogen.exe工具,工具依據當前文件夾中的所有proto文件生成相應的.cs類文件。

雙擊“protoToCs.bat”文件,彈出命令行工具,執行完成后,剛才我們編寫的EnterLiveHallMsg.proto文件旁邊出現了EnterLiveHallMsg.cs文件,該文件是自動生成的,不可更改,這樣我們就完成了cs類的自動生成操作。

Unity3d中網絡傳輸協議protobuf的示例分析

圖4 生成cs文件。

3 數據導入工程中

把剛才編寫的EnterLiveHallMsg.proto和自動生成的EnterLiveHallMsg.cs拷貝到工程中,如圖5所示。到這里我們就可以在工程中調用EnterLiveHallMsg.cs中的數據結構進行功能編寫了。

Unity3d中網絡傳輸協議protobuf的示例分析

圖5工程中網絡數據

4 如何使用生成的cs文件

該工程中功能層面最重要的三個類是SendPacket.cs/ReceivePacket.cs/StartLiveRoom.cs.

內部邏輯功能比較簡單,僅僅實現了用戶登錄大廳,進入房間的一個客戶單示例。

Unity3d中網絡傳輸協議protobuf的示例分析

圖6 登錄大廳操作

關于“Unity3d中網絡傳輸協議protobuf的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

建德市| 大港区| 商丘市| 宁都县| 大悟县| 高碑店市| 石家庄市| 德钦县| 侯马市| 保山市| 萝北县| 嘉黎县| 彩票| 翁源县| 喀喇| 广宗县| 乌拉特后旗| 华坪县| 宜宾市| 榆林市| 乌什县| 宕昌县| 华阴市| 榕江县| 白朗县| 安乡县| 泰顺县| 闽清县| 栾城县| 紫阳县| 唐河县| 沁源县| 安塞县| 缙云县| 万源市| 汤原县| 盐亭县| 黎城县| 金溪县| 兴业县| 哈巴河县|