在iOS 26上,GKGameCenterControllerDelegate的替代是什么?
在展示排行榜时,我提供gameCenterDelegate:https://developer.apple.com/documentation/gamekit/gkgamecenterviewcontroller/gamecenterdelegate
weak var gameCenterDelegate: (any GKGameCenterControllerDelegate)? { get set }
此属性未被弃用。但是,类型本身已被弃用:https://developer.apple.com/documentation/gamekit/gkgamecentercontrollerdelegate
我想知道替代方案是什么?还能为这个属性设置什么?
解决方案
苹果提供了一种展示Game Center的新方式——GKAccessPoint。
https://developer.apple.com/documentation/gamekit/gkaccesspoint
GKAccess Point的苹果官方文档。
https://developer.apple.com/documentation/gamekit/adding-an-access-point-to-your-game
这与您把它直接呈现给玩家的方式不同:玩家需要点击自己头像上的按钮来进入Game Center。
这是来自苹果指南的一段简单代码,做了一些修改……
private var accessPointObservation: NSKeyValueObservation?
private func configureAccessPoint() {
GKAccessPoint.shared.isActive = true
GKAccessPoint.shared.location = .topLeading
GKAccessPoint.shared.parentWindow = view.window
// Observe when the access point displays the dashboard.
accessPointObservation = GKAccessPoint.shared.observe(
\.isPresentingGameCenter
) { [weak self] _,_ in
guard let skView = self?.view as? SKView else { return }
skView.isPaused = accessPoint.isPresentingGameCenter
}
}
cleanup;
deinit {
accessPointObservation?.invalidate()
}
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。