下面详细介绍Unity接入Google Play Games的完整流程和注意事项,分为你列出的四大步骤:
1. 开发者帐号
步骤
- 注册Google Play开发者账号
访问 Google Play Console 注册开发者账号(需支付一次性25美元费用)。 - 实名认证与税务信息
按照要求完成身份验证、税务信息填写等。
注意事项
- 账号信息要真实、准确,后续上架和结算都依赖这些信息。
- 账号注册后不可更改邮箱,建议用公司邮箱注册。
2. Google Play控制台配置
步骤
- 创建应用
在Google Play Console中新建你的应用,填写基本信息。 - 启用Google Play Games服务
- 在左侧菜单找到“Play 游戏服务”。
- 创建游戏项目,填写游戏名称、类别等。
- 配置OAuth 2.0客户端ID
- 在“设置”->“API访问”中,关联你的Google Cloud项目。
- 在Google Cloud Console中为你的应用创建OAuth 2.0客户端ID(类型为Android)。
- 填写包名和SHA1签名(可用
keytool
命令获取)。
- 添加成就/排行榜(可选)
- 在“Play 游戏服务”中可配置成就、排行榜等功能。
注意事项
- 包名和SHA1签名必须和Unity项目一致,否则登录会失败。
- OAuth 2.0客户端ID要妥善保存,后续Unity插件配置需要用到。
- 配置完成后,记得发布游戏服务(即使是测试阶段)。
3. 基础组件准备与安装
步骤
- 下载Google Play Games插件
- 官方地址:GitHub - playgameservices/play-games-plugin-for-unity
- 下载最新的
.unitypackage
文件。
- 导入插件到Unity项目
- 在Unity中
Assets -> Import Package -> Custom Package
,选择刚下载的插件包。
- 在Unity中
- 配置Android环境
- 确保已安装Android Build Support、Android SDK、NDK等。
- Player Settings中设置正确的包名(与Google控制台一致)。
注意事项
- 插件版本要和Unity版本兼容,建议用官方推荐的Unity LTS版本。
- 插件导入后,建议先
File -> Save Project
,避免资源丢失。 - 若用Proguard或混淆,需参考插件文档添加白名单。
4. Unity接入Google插件
步骤
- 初始化Google Play Games服务
- 在Unity菜单栏
Window -> Google Play Games -> Setup -> Android Setup
。 - 填写你的Web客户端ID(在Google控制台获取)。
- 插件会自动生成
GooglePlayGamesConfig
等配置文件。
- 在Unity菜单栏
- 编写登录代码
using GooglePlayGames; using GooglePlayGames.BasicApi; using UnityEngine.SocialPlatforms; void Start() { PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder().Build(); PlayGamesPlatform.InitializeInstance(config); PlayGamesPlatform.Activate(); Social.localUser.Authenticate((bool success) => { if (success) Debug.Log("Google Play Games 登录成功"); else Debug.Log("Google Play Games 登录失败"); }); }
- 测试登录
- 构建APK并安装到真机(模拟器不支持Google Play Games)。
- 登录时会弹出Google账号选择界面。
注意事项
- 必须用真机测试,且设备已登录Google账号。
- 若登录失败,检查包名、SHA1、客户端ID是否一致。
- 若用多渠道包,需为每个签名配置对应的SHA1。
- Google Play Games服务在中国大陆不可用,需考虑地区兼容性。
常见问题与排查
- 登录弹窗不出现:检查包名、SHA1、客户端ID配置,确保APK已签名。
- 登录失败:查看Logcat日志,常见为配置不一致或网络问题。
- 成就/排行榜无法提交:需在Google Play控制台中先创建对应内容,并发布游戏服务。
总结流程图
开发者账号注册
↓
Google Play控制台配置(包名、SHA1、OAuth、游戏服务)
↓
Unity导入Google Play Games插件
↓
Unity中初始化与登录
↓
真机测试
接下来我们继续详细讲解Unity接入Google Play Games的后续内容,包括成就/排行榜接入、常见问题排查、上线前准备、实用建议等,让你从接入到上线全流程无忧!
5. 成就与排行榜接入
5.1 成就接入
步骤
-
在Google Play控制台创建成就
- 进入“Play 游戏服务”->“成就”,新建成就,填写名称、描述、分值、图标等。
- 保存后会生成一个成就ID(如:CgkIxxxxxxxEAIQAA)。
-
在Unity中解锁成就
// 解锁成就 Social.ReportProgress("CgkIxxxxxxxEAIQAA", 100.0f, (bool success) => { Debug.Log(success ? "成就解锁成功" : "成就解锁失败"); });
注意事项
- 成就ID要和控制台一致,字符串不要写错。
- 成就解锁后,Google会自动弹出成就提示框。
5.2 排行榜接入
步骤
-
在Google Play控制台创建排行榜
- 进入“Play 游戏服务”->“排行榜”,新建排行榜,填写名称、分数类型等。
- 保存后会生成一个排行榜ID(如:CgkIxxxxxxxEAIQAg)。
-
在Unity中提交分数
// 提交分数 Social.ReportScore(12345, "CgkIxxxxxxxEAIQAg", (bool success) => { Debug.Log(success ? "分数提交成功" : "分数提交失败"); });
-
显示排行榜UI
// 显示排行榜 PlayGamesPlatform.Instance.ShowLeaderboardUI("CgkIxxxxxxxEAIQAg");
注意事项
- 排行榜ID要和控制台一致。
- 排行榜UI只能在真机上显示。
6. 常见问题与排查
6.1 登录相关
-
登录弹窗不出现/登录失败
- 检查包名、SHA1、OAuth客户端ID是否一致。
- APK必须是签名包,调试包和发布包SHA1不同。
- 设备需能访问Google服务(大陆不可用)。
-
提示“App is not correctly configured”
- 通常是SHA1或包名配置错误,重新核对Google控制台和Unity设置。
6.2 成就/排行榜相关
- 成就/排行榜无法显示或提交
- 检查ID是否正确。
- 检查Google Play Games服务是否已发布(即使是测试阶段也要发布)。
- 账号是否有测试权限(可在控制台添加测试账号)。
6.3 其他
- 多渠道包/多签名
- 每个签名都要在Google控制台配置SHA1。
- Proguard混淆
- 按插件文档添加混淆白名单,防止类被混淆导致功能异常。
7. 上线前准备
- 测试所有功能
- 登录、成就、排行榜、UI弹窗等都要在真机上测试。
- 添加测试账号
- 在Google Play控制台“测试人员”中添加测试账号,未上线前只有测试账号能用。
- 发布游戏服务
- 在“Play 游戏服务”中点击“发布”按钮,否则正式用户无法使用。
- APK签名
- 上线包必须用正式签名,SHA1要和Google控制台一致。
8. 实用建议
- 多环境管理:开发、测试、正式环境的包名和签名要分清楚,避免混淆。
- 日志调试:用Logcat查看Google Play Games相关日志,定位问题更高效。
- 文档参考:多查阅官方文档和Unity插件文档。
- 地区兼容性:中国大陆用户无法使用Google Play Games,需考虑替代方案(如本地排行榜)。
9. 简要流程图
1. 注册开发者账号
2. Google Play控制台配置(包名、SHA1、OAuth、游戏服务)
3. Unity导入Google Play Games插件
4. 初始化与登录
5. 成就/排行榜接入
6. 真机测试
7. 上线前检查与发布
下面继续补充Unity接入Google Play Games的后续内容,包括多渠道包支持、与Firebase等服务集成、常见报错及解决办法、上线后维护建议等,帮助你应对实际开发和运营中遇到的各种问题。
10. 多渠道包与多签名支持
场景说明
如果你的游戏有多个渠道包(如Google Play、Amazon、三星等),每个包可能有不同的包名和签名证书。
处理方法
- 每个渠道包都需要在Google Play控制台单独配置SHA1签名。
- 包名必须和Google Play控制台一致。
- 建议用Gradle自动化打包,避免手动出错。
操作步骤
- 用
keytool
分别导出每个渠道包的SHA1签名。 - 在Google Play控制台“API访问”或“OAuth同意屏幕”中,分别添加每个SHA1。
- 确保Unity项目的包名和渠道包一致。
注意事项
- 测试包和正式包的签名不同,测试时要用测试签名的SHA1。
- 若用Google Play App Signing,需用“上传证书SHA1”而不是本地签名SHA1。
11. 与Firebase等服务集成
场景说明
很多游戏会同时接入Google Play Games和Firebase(如云存档、分析、推送等)。
集成建议
- Google Play Games和Firebase可以共存,但要注意包名和SHA1一致。
- Firebase的认证(Auth)可以直接用Google Play Games的token登录,提升用户体验。
示例代码(用Google Play Games登录Firebase)
PlayGamesPlatform.Instance.Authenticate(SignInInteractivity.CanPromptOnce, (result) => {
if (result == SignInStatus.Success) {
string serverAuthCode = PlayGamesPlatform.Instance.GetServerAuthCode();
// 用serverAuthCode去Firebase登录
}
});
- 详细集成方法可参考Firebase官方文档。
12. 常见报错及解决办法
1. 登录弹窗不出现
- 检查包名、SHA1、OAuth客户端ID是否一致。
- 检查设备是否能访问Google服务。
- 检查Google Play Games服务是否已发布。
2. 登录失败,提示“App is not correctly configured”
- 99%是SHA1或包名配置错误,重新核对所有配置。
3. 成就/排行榜无法提交
- 检查ID是否正确。
- 检查Google Play Games服务是否已发布。
- 检查账号是否有测试权限。
4. Proguard混淆导致功能异常
- 按插件文档添加混淆白名单,常见为
-keep class com.google.** { *; }
5. “Sign in failed with status: 10”
- 这是配置问题,通常是SHA1或OAuth客户端ID不对。
13. 上线后维护建议
- 定期检查Google Play Console的警告和通知,及时修复安全和合规问题。
- 关注Google Play Games插件的更新,及时升级以适配新系统和新政策。
- 收集用户反馈,关注登录、成就、排行榜等功能的稳定性。
- 多渠道包同步维护,每次更新都要同步检查SHA1和包名配置。
14. 参考资源
15. 常用命令与工具
- 获取SHA1签名
keytool -list -v -keystore your.keystore
- Logcat调试
adb logcat | findstr "Unity"
16. 小结
Google Play Games接入流程虽然繁琐,但只要包名、SHA1、OAuth配置一致,大部分问题都能顺利解决。上线后要持续关注Google政策和插件更新,保证服务稳定。