如果您将所有初始化完全由服务器完成,然后推送给客户端,那么您将不再需要同步。这也将消除处理重复信息的需要(这将最终浪费在客户端的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以外的任何东西,因为它是直接的祖先。