上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事は常に上部に表示されます

制作物
東方タクティクス

(旧)東方タクティクス
しそエフェクトエディター(最終更新 2013/06/23)
スポンサーサイト
Unityはマッチングを手軽に行うための機能を提供してくれて非常にありがたいのだが
バグがあるようで今回の制作で少し苦しめられたのでメモしておく

サーバーから送られてくるルームリストの情報(HostData)には、
ルームに何人接続しているかの情報(connectedPlayers)が含まれているが、この値が1しか返ってこない。
サーバープレイヤーのみでも1。 3人接続しても1が返ってきた。
Unity HostData connectedPlayers always return 1
週が変わるとなおるらしい。 クレイジー

接続人数を調べられないと、ルームに参加可能か判定が出来ないのでなんとかする必要がある。

サーバープレイヤー側で、クライアントプレイヤーが接続してきたら
MasterServer.UnregisterHostでルーム登録を取り消す方法を試す。
MasterServer.UnregisterHost() seemingly does not work?
失敗。
サーバーを閉じないとルームの登録解除が出来ない・・・?
サーバーを閉じるとマッチング相手との接続も切れてしまうため、この手法も使えない。

じゃあどうすんの?

MasterServer.RegisterHost(gameTypeName: string, gameName: string, comment: string = "");を使う。
RegisterHostはルーム登録を行う関数だが、
既に登録されている場合は情報を上書きするようになっているようだ。
comment引数に接続情報を入れてルームを登録し直すと良い。
20141214gold.jpg
ゴールド免許になりました。更新期日ギリギリでした。セフセフ。
マスター入稿が終わりました~!
C87特設ページを少し更新。
23日くらいにPVの投稿を予定しております。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。