Unity Networking API文檔翻譯(一):Networking概述

寫在翻譯前的話:服務器

     我使用過Photon,研究過Ulink這些Unity提供的多人在線遊戲服務器組件,這些商業組件雖然很好很強大。可是對於一個獨立開發者來講,4000多軟妹幣仍是點多。總想找一個免費的。對於Unity5.2版本後提供的Unity Networking組件(簡稱UNet),國外已經有不少開發者在使用了,雖然穩定性還有待考驗,可是unity官方是會不停更新的,主要的是免費的啊!官網沒有中文翻譯,因此本身準備把這塊翻譯下,有很差的地方敬請指出,共同完善這個中文文檔。翻譯的過程就當是學習的過程,其餘開發者若是翻譯過了,就當互相學習吧。網絡

Networking概述架構

使用網絡功能的用戶按需求不一樣可分爲下面2種狀況:框架

  • 用戶使用Unity開發一個多人在線的遊戲,那麼應該從學習NetworkManager或者High Level API開始。
  • 用戶須要構建底層網絡框架或者編寫高級多人在線遊戲,那麼應該從NetworkTransport API開始學起。

High level scripting API編輯器

Unity網絡模塊有一個「高級」腳本API(咱們一般叫HLAPI)。使用HLAPI能夠不關心具體網絡底層實施細節。它能提供多人在線遊戲所須要的大多數常見操做命令。HLAPI提供如下功能:學習

  • 使用「Network Manager」組件來管理遊戲的網絡狀態
  • 能製做「局域網聯機」類遊戲,這種遊戲客戶端能夠做爲一個遊戲主機,其餘客戶端加入這個主機
  • 提供通用的序列化方法對數據進行序列化
  • 接收和發送網絡消息
  • 從客戶端向服務器發送網絡命令
  • 服務器可使用遠程過程調用(RPCS)客戶端
  • 服務器能夠發送網絡事件到客戶端

Unity引擎和編輯器中的網絡模塊整合優化

Unity的網絡模塊已經集成到遊戲引擎和Unity編輯器中了,開發者能夠在可視狀態下使用組件開發多人在線遊戲。它提供了:翻譯

  • 一個NetworkIdentity組件提供給須要網絡通訊的實體
  • 一個NetworkBehaviour類提供給網絡通訊腳本
  • 遊戲內物體座標和方位的自動同步
  • 腳本變量的自動同步
  • 在Unity場景中提供能夠拖放的網絡模塊
  • 各類網絡組件

互聯網服務設計

Unity提供了「互聯網服務」用於支持開發者的整個產品開發和發佈過程,包括:3d

  • 遊戲配對服務
  • 遊戲建立匹配和廣告匹配
  • 提供配對列表和加入對戰功能
  • 主機接替服務
  • 不須要專門的服務器而能在網絡上聯機
  • 給匹配的玩家們發送羣發消息

實時的網絡傳輸層

Unity提供了一個實時的網絡傳輸層,包括:

  • 優化後的UDP協議層
  • 多通道設計用來避免數據堵塞問題
  • 每個通道提供不一樣等級的多樣化服務質量(QoS)
  • 靈活的網絡拓撲結構,能提供點對點(P2P)以及客戶端-服務器(CS)架構

項目案例

開發者能夠仔細研究Unity官網提供的多人在線遊戲項目,裏面有多種遊戲案例:

相關文章
相關標籤/搜索