NetWork組件
NetworkBehaviour
基類,應該由包含網絡功能的腳本繼承。
這是一個單行爲類,因此需要使用網絡特性的腳本應該繼承這個類而不是單行爲。它允許您調用網絡操作,接收各種回調,並從服務器到客戶機自動同步狀態。
網絡行爲組件需要在遊戲對象上建立一個NetworkIdentity。在單個遊戲對象上可以有多個網絡行爲。對於具有層次結構中的子組件的對象,NetworkIdentity必須位於根對象上,而網絡行爲腳本也必須位於根對象上。
網絡系統的一些內置組件來自網絡行爲,包括NetworkTransport、NetworkAnimator和NetworkProximityChecker。
屬性:
1. connectionToClient:與這個NetworkIdentity關聯的網絡連接。這隻對服務器上的代表對象有效。
2. connectionToServer:與這個NetworkIdentity關聯的網絡連接。這隻對服務器上的代表對象有效。
3. isClient:如果作爲客戶端運行,則返回true,此對象由服務器生成。
4. isLocalPlayer:如果該對象是表示本地機器上的代表的對象,則返回true。
5. isServer:如果該對象在活動服務器上活動,則返回true。
6. netId:該對象的唯一網絡Id。
7. playerControllerId:與行爲相關的播放器的id。
8. localPlayerAuthority:這個值設置在NetworkIdentity上,可以在這裏方便地訪問腳本。
公共方法:
1. GetNetworkSendInterval:此虛擬函數用於指定用於此腳本的SyncVar更新的發送間隔
2. InvokeCommand:手動調用命令。
3. InvokeSyncEvent:手動調用SyncEvent。
4. OnCheckObserver:由可見系統使用的回調,以確定一個觀察者(玩家)是否可以看到這個對象。
5. OnDeserialize:虛擬函數覆蓋以接收自定義的序列化數據。發送序列化數據的相應函數是OnSerialize()。
6. OnSerialize:虛函數覆蓋以發送自定義序列化數據。發送序列化數據的相應函數是OnDeserialize()。
7. OnNetworkDestroy:當服務器導致該對象被銷燬時,就會調用該對象。
8. OnStartAuthority:這是權威上調用行爲,基於上下文和NetworkIdentity.localPlayerAuthority。
9. OnStopAuthority:當權限被移除時,這將被調用。
10. OnStartClient:在客戶端激活時調用每個網絡行爲。
11. OnStartLocalPlayer:建立本地player對象時調用。
12. OnStartServer:當網絡行爲對象在服務器上變得活躍時,就會調用它。