お世話になります。
UNETを利用してローカルネットワーク上にある複数のクライアントにRPCを利用してのリモートプレイを作成しております。
実現したい事はサーバーとなる端末上で各クライアントとの接続状態をuGUIのスクロールビューで監視する事です。
現在行き詰っているのはサーバー側から各クライアントの接続状況を監視する箇所です。
Unityバージョンは 5.6.0f3
サーバー,クライアント間の接続処理はNetworkDiscoveryクラスを継承したクラスにて行っております。
以下のコードの OnServerDisconnect()にて引数 _conn のアドレスを取得したいのですが内容が空文字で取得できない状態です。
C#
1 2 //-------------------------------------------------------------- 3 // 新しいクライアントが接続に成功したとき、サーバー上で呼び出される. 4 public override void OnServerConnect( 5 NetworkConnection _conn ) { 6 base.OnServerConnect( _conn ); 7 8 Debug.Log( "Connect : " + _conn.address ); 9 } 10 11 12 //-------------------------------------------------------------- 13 // クライアントの接続が失われたか切断されたときにサーバー上で呼び出される. 14 public override void OnServerDisconnect( 15 NetworkConnection _conn ) { 16 base.OnServerDisconnect( _conn ); 17 18 Debug.Log( "Disconnect : " + _conn.address ); 19 }
このアプリケーションのログを見たところ以下の様になっておりました。
以下ログ
RemotePlayServerBase.OnSErverConnect()
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
Connect : ::ffff:192.168.100.105
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
OnServerConnect
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
The PlayerPrefab is empty on the NetworkManager. Please setup a PlayerPrefab object.
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
Log: connection {1} has been disconnected by timeout; address {::ffff:192.168.100.105:59553}
Disconnect :
Disconnect : の上の行ではアドレスが切断されたアドレスがわかるのですがDebug.Log()に来た際にはアドレス値が空になっております。
元々OnServerDisconnect()が来た時にはそのクライアントのアドレス値はすでに破棄されているのでしょうか?
それとも別の方法で各クライアントのアドレスが取得できるのでしょうか
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。