• 通过Unity集成Huawei Game Service SDK 5.0.4.302并获取openId和UnionId等玩家标识信息


    背景描述

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

    • Demo****下载地址:

    github.com/Unity-Techn…

    • 变更说明:

      看了下,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, AccessTokenOpenIdSign``字段。

    • 增加AppPlayerInfo 接口去保存当前玩家信息。

    如果想了解上述更详细的变更说明,可以参考华为的game Services SDK****版本更新说明:

    developer.huawei.com/consumer/cn…

    接口验证测试

    这里直接执行的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等授权。

    这个和华为侧文档描述也基本一致,当然我们可以按照我们的业务需求自行设置:

    developer.huawei.com/consumer/cn…

    操作:点击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)接口的使用说明

    关于这两个接口的详细使用说明,我这里参考了华为的官方文档,大家也可以参考下。

    developer.huawei.com/consumer/cn…

    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。

    原文链接:developer.huawei.com/consumer/cn…

    原作者:Mayism



  • 相关阅读:
    pycharm调试时出现十分缓慢,变量数据没法预览的解决办法
    gitignore设置失效的问题
    存储过程计算两个时间段的请假天数
    Vue 多层级目录拖动排序
    vue 动态插入渲染html
    Vue:eliment-ui el-tree动态加载更新
    Angular2+ iframe跨域调用父页面js
    Angular2.0+动态绑定html文本
    Angular2.0+开发 -实现部门树形结构
    Angular2.0+开发(1)-WebStorm配置及第一个Hello World
  • 原文地址:https://www.cnblogs.com/developer-huawei/p/14962405.html
Copyright © 2020-2023  润新知