背景形容
近期,发现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