GKMatchmakerViewController的好友邀请从未出现



我基本上只是遵循了本教程https://www.raywenderlich.com/7544-game-center-for-ios-building-a-turn-based-gametried.我尝试的不是回合制游戏,而是点对点实时比赛。这是我的代码:

let request = GKMatchRequest()
request.minPlayers = 2
request.maxPlayers = 2
request.defaultNumberOfPlayers = 2
request.recipientResponseHandler = { player, response in
// never being called
}
let vc = GKMatchmakerViewController(matchRequest: request)!
vc.matchmakerDelegate = self
present(vc, animated: true)

GKMatchmakerViewController显示正确。它可以自动成功地为我找到匹配项。唯一的问题是,如果我手动在播放器插槽中添加一个朋友,然后按开始,它会说它永远在等待另一个玩家,但我朋友的手机上什么都没有显示。我甚至不知道当收到邀请时会是什么样子。

我实现了GKLocalPlayerListener和GKMatchmakerViewControllerDelegate,但从未调用过player(_ player: GKPlayer, didRequestMatchWithOtherPlayers playersToInvite: [GKPlayer])player(_ player: GKPlayer, didAccept invite: GKInvite)

edit:在调用matchmakerViewController(_ viewController: GKMatchmakerViewController, didFind match: GKMatch)之前,我没有看到这样的回调来处理邀请,这就是为什么我没有匹配请求子系统的代码。我在文档中看到了GKInviteEventListener协议,它告诉我使用GKLocalPlayerListener,因为它的方法从未被调用。我还阅读了此文档https://developer.apple.com/documentation/gamekit/finding_multiple_players_for_a_game.我仍然不知道如何处理匹配请求子系统。

邀请朋友并进行配对的正确方式是什么?

不要将GKMatchmakerViewController子类化。。。在我的情况下,我的两个设备都处于"打开"状态;正在连接"永久状态

最新更新