2017-04-21 5 views
0

私は、単純なマルチプレイヤーゲームを作成しようとしています。私はマッチメイキングシステムをセットアップしました。それは、デバイスがインターネットに接続されている、つまりオンラインロビーが正常に作成されている間に正常に動作します。しかし、インターネットにアクセスできないローカルネットワーク上のロビーを作成しようとすると、何も起こりません。ここでユニティ:ローカル(LAN)お見合いエラー

は、私はゲームをホストするために使用するコードです:デバイスがインターネットに接続されている場合

void Start() 
{ 
    netManager = NetworkManager.singleton; 
    if(netManager.matchMaker == null) 
    { 
     netManager.StartMatchMaker(); 
    } 

    roomName = "MyGameRoom"; 
    roomSize = 12; 
} 

public void CreateRoom() 
{ 
    if (roomName != "" && roomName != null) 
    { 
     Debug.Log("Creating Room:" + roomName); 
     netManager.matchMaker.CreateMatch(roomName, roomSize, true, "", "", "", 0, 0, netManager.OnMatchCreate); 
    } 
} 

さて、ゲームが正常にホストされています。しかし、デバイスがインターネットサービスを持たない無線LANに接続されている場合は、CreateRoomメソッドが呼び出されても何も起こりません。

CreateRoom()方法は、ボタンのonClickイベントにリンクされています。

私は、ユニティ・ネットワーキングに新たなんだ、誰かが私が間違ってやっていると指摘することができます願っています。おかげさまで

+0

エディタでアプリケーションを実行すると、コンソールをチェックして、エラーが発生した場合の質問にエラーを追加します。 –

+0

エラーなしitay_421 @、これはコンソールがMatchMakingClientが作成 '................言っているとおりです。https://mm.unet.unity3d.com/json/reply/CreateMatchRequest UnityEngine.Networking.Match.NetworkMatch:CreateMatch(文字列、UInt32型、ブール、文字列、列、列、のInt32、のInt32、DataResponseDelegate'1) ' –

答えて

1

基本的なMatchMakingサービスは、Unity MatchMakerサーバー(https://mm.unet.unity3d.com)に接続することに基づいており、このサーバーはインターネット上にあります。つまり、インターネットに接続していない場合、Itに接続できません。解決策は、クライアントがブロードキャストを「聞いて」送信者に接続できるように、サーバーがブロードキャストメッセージをネットワーク経由で送信できるようにするNetworkDiscoveryを使用することです。サンプルチェックが必要な場合はthreadです。