質問: プレイヤーが同期されずルームから退出してしまう 同じネットワークで複数プレイヤーの座標等の同期を実装するためにMUNを使っているのですが、サンプルとしてMUN技術情報ページを参考にプログラミング・チュートリアル<オフラインゲームのオンライン化>を実装しようとしたのですがルームから勝手に退出してしまうという不具合が生じています。 具体的には、ルームを作成した後二つのクライアントがルームに入室している状態で片方のプレイヤーが動かすと、数秒間(三、四秒間)くらいは位置やアニメーションは同期されているのですが、それ以降は同期されなくなって、動かしてから十数秒経つとルームから退出させられてしまいます。 ルームから退出していることに関してはコールバックのOnLeftRoomやOnDisconnectedFromServerを呼ばれたときにDebug.Logでコンソールに出力されるか試したところ、OnLeftRoomは呼ばれて、OnDisconnectedFromServerは呼ばれていないことから、ルームから退出しているだけでサーバから途中で切断していないのではないかと判断しました。 とりあえずチュートリアルのページの不具合の修正やコールバックの適用までは目を通して実装しているつもりなのですが、どうにもうまくいきません。これに関する内容などの解決方法やアドバイスがあれば教えていただきたいです。 私が使っているバージョンは以下の通りです。 Unity 2019.4.10f1 mun_2.8.0.unitypackage チュートリアルのページはこちらになります。
回答: いくつか質問があるのですが 1.単独でルームに入室して操作する場合、途中でルームから退室されることがありますか? 2.ルームから退室させられるのは「ホスト」「それ以外のクライアント」のどちらでしょうか? 3.「ルームを作成した後二つのクライアントがルームに入室している状態」で、ネットワークも含めたデバイスのパフォーマンスは正常な状態を維持されてるでしょうか?(PCであれば"リソース モニター"や"パフォーマンスモニター"などで安定動作が保たれているか確認してください) 4. 手順として「複数クライアントでのテストを再度実施し、プレイヤー操作が同期していることを確認する( ) 」まで進められたうえで確認されていますでしょうか?(途中までの段階であれば、チュートリアルは「オンライン化する上での躓きポイント」をアンチパターンとして紹介しているようなので、この段階まで進めてみてください) 付け加えて、単に MonobitNetwork.LeaveRoom() が不用意に呼び出されていることだけが原因であれば、 に記載されている呼び出し箇所をコメントアウトし、なおもルームから不用意に退室する現象が発生するか確認してみてください。 その上でルーム退室の現象が発生し続けるのであれば、プロジェクト一式、あるいは実行バイナリのエラーログ等を提供していただければ何かしら助言はできるかもしれません。