关于appgallery-connect:通过Unity集成Huawei-Game-Service并获取玩家标识信息

43次阅读

共计 2489 个字符,预计需要花费 7 分钟才能阅读完成。

背景形容
近期,发现 Unity 公布了配套 Huawei Game Service SDK 5.0.4.302 版本的 demo,试水测试一把这个版本提供的新能力,写个帖子同步给大家啦。

Demo 下载地址:

https://github.com/Unity-Tech…

变更阐明:

看了下,unity 之前公布反对了华为 Game Service SDK4.0.1.300 版本的插件,这次 Unity 间接更新反对到 Game Service SDK5.0.4.302 版本

unity 这次变更如下:

新增 GetGamePlayer 和 GetGamePlayer(bool isRequirePlayerId)两个接口,以实现获取游戏玩家惟一标识。

新增 SetGameTrialProcess,防沉迷试玩能力的接口监听。

新增 AccountAuthParamsHelper,反对开发者获取华为帐号更多的信息,比方 openId,unionId,email 之类信息。

Player 对象新增了 OpenId, UnionId, AccessToken 和 OpenIdSign 字段。

减少 AppPlayerInfo 接口去保留以后玩家信息。

如果想理解上述更具体的变更阐明,能够参考华为的 game Services SDK 版本更新阐明:

https://developer.huawei.com/…

接口验证测试
这里间接执行的 Unity 的 demo,这里如果您不会打包运行 demo,举荐参考这篇帖子:

手把手教您疾速运行 Unity 提供的华为游戏 demo

AccountAuthParamsHelper
查看 C# 源码,能够发现 Unity 以后反对通过如下形式设置申请受权:

AccountAuthParamsHelper authParamsHelper = new AccountAuthParamsHelper(); authParamsHelper.SetAuthorizationCode().SetAccessToken().SetIdToken().SetUid().SetId().SetEmail().CreateParams();

这里申请受权的有:AuthorizationCode、AccessToken、IdToken、Uid、Id、Email 等受权。

这个和华为侧文档形容也基本一致,当然咱们能够依照咱们的业务需要自行设置:

https://developer.huawei.com/…

操作:点击 Login>login 按钮

景象:

勾选 email,点击批准受权,界面会提醒欢送框,相干信息获取如下:

能够发现:openId、unionId、AccessToken、AuthorizationCode、IdToken 均可获取到。

然而 email 没有获取,这里我在受权页面也勾选了 email,为什么没有获取到呢?起初分割华为技术反对,发现我登录的华为帐号自身就没有填写 email 地址,天然是获取不到的,大家能够到华为手机设置》华为帐号核心》帐号与平安》邮箱地址下查看,这里的确没有绑定。

大家理论绑定一个邮箱,就能够获取到了,绑定后调测如下:

Uid 获取不到是失常的,这个和华为侧技术支持核实,该 uid 目前暂未对外开放。

这里能够看到这个最新的 Unity 插件版本,曾经反对能够获取华为帐号的多个信息,如果游戏想要应用华为帐号的 unionId 或者 openId 等信息作为玩家惟一标识,也是能够的。

GetGamePlayer
该接口映射的是华为 Game Service SDK5.0.4.302 版本的 getGamePlayer 接口,依照华为官网形容,该接口获取的 player 对象只有 displayName、openId、unionId、accessToken 有值。这里我自测了下。

操作:点击 Player>getGamePlayer 按钮

景象:

能够看到,这个和华为侧的文档形容要求统一,返回的信息中只有:displayName、openId、unionId、accessToken 有值。

GetGamePlayer(bool isRequirePlayerId)
该接口映射的是华为 Game Service SDK5.0.4.302 版本的 getGamePlayer(boolean isRequirePlayerId)接口,反对同时获取 playerId 和 openId

操作:点击 Player>getGamePlayer(isRequirePlayerId)

景象:

这个和华为侧要求也统一。

GetGamePlayer 和 GetGamePlayer(bool isRequirePlayerId)接口的应用阐明
对于这两个接口的具体应用阐明,我这里参考了华为的官网文档,大家也能够参考下。

https://developer.huawei.com/…

setGameTrialProcess
这个接口看华为官网介绍,公布中国大陆的游戏因为要满足中国大陆的游戏防沉迷要求,所以须要接入,我这边我的项目因为都公布海内,临时不须要,另外调测这个接口须要向华为经营申请,所以我这里就不测试了。

AppPlayerInfo
保留玩家 savePlayerInfo 接口时须要应用,这里咱们我的项目都是本人治理保留咱们的玩家信息,没有应用华为的这个接口,所以也不做测试了。

测试小结
能够发现,unity 这个版本的插件,较上个版本的 Game Service SDK4.0.1.300 版本,最重要的变动点:

  1. 反对咱们自行设置华为帐号信息受权的范畴,比方获取 openId、unionId、email 等信息。
  2. 华为 Game Service SDK5.0.4.302 版本开始,反对以前通过 getCurrentPlayer 接口获取 playerId 作为玩家惟一标识的游戏,将 playerId 替换为 openId 或 unionId,因而新增了 getGamePlayer 接口,这个 unity 目前也反对该能力。
  3. 反对了公布中国大陆的游戏试玩能力,即 setGameTrialProcess。

原文链接:https://developer.huawei.com/…
原作者:Mayism

正文完
 0