すべての初期化をサーバーだけで行ってからクライアントにプッシュすると、後で同期する必要がなくなります。これにより、重複した情報を処理する必要もなくなります (最終的にクライアント側で 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 の Send メソッドを使用して、サーバーにメッセージを送信します。
また、実際のメッセージの MessageBase に基づいてメッセージ クラスを定義する必要があります。
public class nmsg_hello : MessageBase {
public int x;
public float welcomeness;
}
注:ネットワークメッセージを互いに基にしないようにしてください.Unityのバグ/機能のようです(少なくとも最後に試したとき)、メッセージが他のものから派生している場合は機能しません直接の祖先であるため、MessageBase よりも。