如果您將所有初始化完全由服務器完成,然後推送給客戶端,那麼您將不再需要同步。這也將消除處理重複信息的需要(這將最終浪費在客戶端的CPU時間)。
但是,如果您希望讓客戶端也創建數據,那麼我建議您讓他們用服務器的數據發送適當的消息到服務器,然後服務器可以爲它們創建對象。與NetworkServer.RegisterHandler爲每個需要它來處理消息類型的服務器實例
設置消息處理程序,
public enum netMessages{
hello = 101,
goodbye = 102,
action = 103,
}
...
NetworkServer.RegisterHandler((short)netMessages.hello, new NetworkMessageDelegate(hdl_hello));
NetworkServer.RegisterHandler((short)netMessages.goodbye, new NetworkMessageDelegate(hdl_goodbye));
...
private void hdl_hello (NetworkMessage msg){
nmgs_hello m = msg.ReadMessage<nmgs_hello>();
...
}
,並使用NetworkClient的發送方法將消息發送到服務器。
您還需要根據MessageBase爲實際消息定義消息類。
public class nmsg_hello : MessageBase {
public int x;
public float welcomeness;
}
注意:請確保您沒有任何基礎的網絡的消息交相輝映,似乎是在統一的bug /功能(至少是我最後一次嘗試它),在它不工作,如果你的消息來源於MessageBase以外的任何東西,因爲它是直接的祖先。