問題
UnityにPhoton Unity Networking(PUN)を導入して,将棋のようなゲームアプリを開発しています.
その際に相手の動かした駒の情報を
[PunRPC] public void OnSendMove(int pos_before, int pos_after) { // 相手画面での実行 gameController.OnReceiveMove(_pos_before, _pos_after); }
のような関数で実行しています.
しかし,通信がうまく行っている限りは問題ないのですが,送信した情報を相手が受け取れなかった場合,ゲームの進行度合いに差が出て対戦が続行できなくなってしまいます.
試したこと
・ネットワークの接続切れを検知するために,数秒に一回相手に接続確認の通信をRPCで送信して,それが途絶えた場合には通信エラーとして対戦を中断する処理を挟みました.
・RPC通信が連続しすぎないように,[PunRPC]の関数を呼び出した際に一定時間の待機を挟みました.
いずれの場合も,根本的に駒の情報の送受信の際に失敗してしまうケースが発生してしまいました.
良い解決策など,ご教示いただければ幸いです.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/08 03:51