0

我需要你的帮助,因为我有一个关于配对的问题。我尝试让 Pong 可以在线播放。当我使用NetworkHUD,并且我使用 Matchmaker 时,我可以创建一个匹配项,而其他应用程序(目前在同一台计算机上)将其分离并可以加入它。但是,当我不使用它,而是手动使用 matchmaker 时,我可以创建一个匹配项,我有一个成功响应,我可以在同一个应用程序中找到这个匹配项,但是,在我的第二个应用程序中,我找不到由第一个应用程序创建的匹配。

你能帮助我吗?

这是我创建 match 的两个函数:

 public void matchmaking()
     {
         nm.StartMatchMaker();
         networkMatch.ListMatches(0, 20, "", OnMatchList);
         Debug.LogError ("NBR MATCH " +matchList.Count);
         if (matchList.Count == 0)
         {
             CreateMatchRequest match = new CreateMatchRequest();
             match.name = "OrionPongRoom";
             match.size = 2;
             match.advertise = true;
             match.password = "";
             networkMatch.CreateMatch(match, OnMatchCreate);
         }
         else
             Debug.Log ("******matches found"+matchList.Count);
     }
    void OnMatchCreate(CreateMatchResponse matchResponse)
 {
     if (matchResponse.success)
     {
         Debug.LogError("Create match succeeded");
         matchCreated = true;
         MatchInfo matchInfo = new MatchInfo(matchResponse);
         Utility.SetAccessTokenForNetwork(matchResponse.networkId, new NetworkAccessToken(matchResponse.accessTokenString));
         nm.StartHost(matchInfo);
         NetworkServer.Listen(9000);
         //NetworkServer.Listen(new MatchInfo(matchResponse), 9000);
     }
     else
     {
         Debug.LogError ("Create match failed");
     }
 }
4

1 回答 1

1

你需要写

     if (matchList.Count == 0)
     {
         CreateMatchRequest match = new CreateMatchRequest();
         match.name = "OrionPongRoom";
         match.size = 2;
         match.advertise = true;
         match.password = "";
         networkMatch.CreateMatch(match, OnMatchCreate);
     }
     else
         Debug.Log ("******matches found"+matchList.Count);

OnMatchList方法。

void OnMatchList(ListMatchResponse matchList)
{
  if (matchList.Count == 0)
         {
             CreateMatchRequest match = new CreateMatchRequest();
             match.name = "OrionPongRoom";
             match.size = 2;
             match.advertise = true;
             match.password = "";
             networkMatch.CreateMatch(match, OnMatchCreate);
         }
         else
             Debug.Log ("******matches found"+matchList.Count);
}

由于Network Delays等原因,匹配服务器无法同步发送响应。

于 2016-01-08T13:40:08.987 回答