私は、lidgren を使用して独自のネットワーキングを書き始めました。私はとても遠いです。私の目標は、後で自分のマスター サーバー (lidgren にその例があります) と、サーバーをホストし、再び最も近い自動マッチメイキング サーバーを作成することです。
Unity Networking (簡単ですが制限があります)、UNet、その他の photon などにうんざりしています。Photonは素晴らしいですが、私の計画では高価です..そして、他の人は自動マッチメイキングを持っていません...または、サーバーにとどまるようにしたいと考えています.
さて、私は自分の考えと問題を説明しようとします。呼び出したい動的シリアル化メソッドを作成したい:
void OnULGNetworkSerialize(NetIncomingMessage msg)
クライアントは、int、float、bool、vector3、vector2 など、さまざまなものを送信できます。
メッセージはサーバーに送られ、サーバーは他のクライアントに送り返す必要があります。クライアントには同じコードがありますが、サーバーにはありません。それで、どうすればこれを解決できますか。
この部分 (サーバー):
// Serializing
void OnULGNetworkSerialize(NetIncomingMessage msg)
{
int lenght = (int)msg.ReadByte();
for (int i = 1; i < lenght; i++)
{
// Read different types here
}
}
したがって、コードを見れば、私が何を試したいかわかるかもしれません。サーバーまたはクライアントのメッセージの長さとタイプが常に同じであるとは限りません。では、どうすればタイプを取得してすべてのクライアントに送信できますか?