将 GameCenter 与 SwiftUI 集成的最简单方法。
GameCenterUI 允许从 SwiftUI 使用 Apple 的 GameKit 框架。 支持 iOS 和 Mac。
在 App
结构中调用 .enableGameCenter()
以使用 GameCenter 进行身份验证。
import SwiftUI
import GameCenterUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.enableGameCenter()
}
}
}
一个视图,在按钮中显示最高分,如果已通过身份验证,则预设排行榜。 如果未通过身份验证,该按钮会将用户带到偏好设置,用户可以在其中登录到 GameCenter。
struct MyGameView: View {
@Binding var highscore: Int
@Environment(\.gameCenterIsAuthenticated) var gameCenterIsAuthenticated
@State var showGameCenter = false
var body: some View {
if gameCenterIsAuthenticated {
Button("Highscore \(highscore)") {
showGameCenter.toggle()
}
.gameCenter(
isPresented: $showGameCenter,
launchOption: .leaderBoardID(
id: "SomeLeaderboardID",
playerScope: .global,
timeScope: .allTime))
} else {
Button("Log in to game center") {
openGameCenterConfiguration()
}
}
}
}
编辑 Package.swift 文件。 将 GamCenterUI 添加为依赖项
let package = Package(
name: " ... ",
products: [ ... ],
dependencies: [
.package(url: "https://github.com/berikv/GameCenterUI.git", from: "1.0.0") // here
],
targets: [
.target(
name: " ... ",
dependencies: [
"GameCenterUI" // and here
]),
]
)