unity5.1 Unet基礎


      Unity5.1為開發者發布全新的多玩家在線工具、技術和服務。該技術的內部項目名稱為 UNET,全稱為 Unity Networking。我近期的工作便是研究並使用unet,將自己的研究結果在這里記錄一下,如有紕漏,請大家多多指正。我主要記述的不是很具體的用法而是一些我遇到的問題,用法在網上也能查到很多。

  Unet針對不同用戶的使用有高級和低級API兩種--用Unity制作多玩家游戲的用戶,這類用戶應該從NetworkManager或者高級API開始。
搭建網絡架構或制作高級的多玩家游戲的用戶,這類用戶應該從網絡傳輸層低級API開始。

  下面從高級API(HLAPI)開始介紹,使用高級API可以實現:

  - 通過Network Manager控制游戲的網絡狀態
  - 操作客戶端主持的游戲,主持游戲的客戶端同時也是一個玩家
  - 使用一個通用的序列化器序列化數據
  - 發送和接收網絡消息
  - 從客戶端向服務器發送網絡命令
  - 在服務器上遠程調用客戶端提供的過程(RPC)
  - 從服務器向客戶端發送網絡事件

  關於Unet的介紹網上有很多,大家可以自行查找。

  首先,Unet提供了網絡連接以及管理的組件:

  網絡管理器(NetworkManager)可以作為控制多人游戲的核心組件。在場景中創建一個空的游戲對象或挑選一個方便管理器對象。從Network/NetworkManager菜單項里選擇添加NetworkManager組件。新添加的NetworkManager應如圖所示:


在編輯器中的NetworkManager的的inspector 面板上,有允許您配置和控制與網絡相關的很多東西。

  NetworkManagerHUD 是與NetworkManager相關的的另一個組件。游戲運行控制網絡狀態時,它給你一個簡單的用戶界面。用來調試或者實驗都可以,但不能用作游戲最終的 ui 設計。NetworkManagerHUD 看起來像:


真正的游戲用戶需要自己設置正確的UI ,用於控制游戲狀態和允許玩家選擇什么樣的游戲 。用戶設置自己的UI時,腳本需要繼承NetworkManager,使用里面的StartHost(),StartClient()來開啟伺服器和客戶端。並且可以重寫方法來檢測連接或者實現相應功能,eg:OnClientConnect,OnStartHost等。

  之后便可以使用一系列組件實現自己想要的功能了:

  

unity自帶的組件有上述這些,根據名字也可以大致推測出可以實現什么功能,下面簡要介紹一下:

--Animator:動畫同步

--Identity:網絡標識組件(帶有Identity的物體只有網絡開啟后才會顯示出來)

--LobbyManager:游戲大廳

--LobbyPlayer:玩家控制

--Manager:網絡管理器

--ManagerHUD:默認UI

--StartPosition:游戲開始玩家所處的位置

--Tranform:物體位移等的同步控制(掛載在需要同步物體的最小父物體上即可)

 這一章到這里,下一章我主要記述我所遇到的問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM