使用移动服务成就系统

[复制链接]
查看5565 | 回复12 | 2016-9-4 09:01:19 | 显示全部楼层 |阅读模式
本帖最后由 天才小熊猫 于 2016-9-4 09:07 编辑

成就可设定为努力达成的目标、荣誉的徽章,或只是单纯的游戏进度标志。无论如何,它们都能让玩家对游戏更为入迷。

缓存成就
Cache Achievements 将从平台游戏服务请求成就列表,以及玩家拥有的成就数值。如此节点成功返回,即可使用 Get Cached Achievement Value
它是隐藏节点,因此拥有多个执行输出引脚。最上方的是“pass through”,功能与其他执行输出引脚相似。在线服务返回数值(或返回数值失败)后,其他两个引脚(On SuccessOn Failure)将执行。执行返回 success 时

在蓝图中:
下图的 Global Game Instance 蓝图。用户登入设备的游戏平台(Game Center、Google Play)后,我们在此时将运行 Cache Achievements 节点并停止实际执行(使顶部输出执行引脚不进行执行),使服务有时间返回所有成就。


从成就读取数值
Get Cached Achievement Progress 将返回特定 Player Controller 特定 Achievement ID 的进度,前提是之前已运行 Cache Achievements 节点并成功返回。
对于 iOS Game Center 而言,该数值为一个底层浮点值,因为它们将其作为整数保存。为 Google Play 服务接收的是浮点值。

在蓝图中:
下图的 Global Game Instance 蓝图。成就被缓存后,我们通过一个循环从阵列中获取成就名称、以及它们的目标分数,并与找到的离线数值进行快速比较。然后接收服务较高的数值,或本地数值:

向成就写入数值
Write Achievement Progress 将从平台的成就系统发出消息,向特定用户的特定成就(Player ControllerUser Tag)写入以百分比(0.0% - 100.0%)为基础的Progress。对于“一次性解锁”的成就而言,Progress 传入的固定数值为 100.0;对于递增的成就而言,传入的百分比较低,直至数值达到 100.0。
对 iOS Game Center 而言,此数值实际上会作为整数发送,因为只存在 1-100 递增的成就。为 Google Play 服务发送的是浮点值。

它是隐藏节点,因此拥有多个执行输出引脚。最上方的是“pass through”,与其他执行输出引脚相似。在线服务返回数值(或返回数值失败)后,其他两个引脚(On SuccessOn Failure)将执行。执行返回 success 后,Written Achievement NameWritten ProgressWritten User Tag 将返回等于传入节点的非空数值。

在蓝图中:
下图的 Global Game Instance 蓝图。一个循环将对当前成就数值和增加成就所需的数字进行对比。如已有进度,则会调用 Write Achievement 事件:
执行此操作的原因是隐藏节点无法用于函数之中。

显示平台特有的成就画面
Show Platform Specific Achievement Screen 将显示当前平台特定 Player Controller 的成就。

在蓝图中:
下图的 GameOverButtons 蓝图控件。ShowAchievements 按钮按下后,游戏将显示当前平台的成就画面。

使用 Google Play 成就
配置
成就 | Play Games Services | Google 开发者 中可查阅应用程序 Google Play Games Services 设置的内容。
针对虚幻项目进行的操作:
  • 虚幻编辑器Edit 菜单中选择 Project Settings 查看项目的配置选项。
  • 选择左侧的 Platforms:Android 标签。
  • 勾选 Google Play Services 部分下的 Enable Google Play Support 选项。
  • Games App ID 栏位中输入游戏的 App ID。
  • Google Play License Key 栏位中输入 Google Play 授权码。
  • 添加元素到 Achievement Map
  • Achievement Map 中,需要输入仅用于虚幻项目的 Name 和在 Google Play Services 中设置的 Achievement ID
    应用程序和 Game Services 的这些数值保存在 Google Play Developer Console 中。

成就映射中的 Name 数值只是 Google Play Services Achievement ID 的一个映射,且 iOS 由它们的 Achievement Reference 直接引用。如需在安卓和 iOS 两个平台上进行发布,可将 iOS Game Center 设置的 Achievement Reference 作为 Name 输入,之后只需调用一个节点即可(无论哪个平台)。

使用 iOS Game Center 成就
配置
排行榜、成就和挑战 中可查阅应用程序 iOS Game Center 设置的内容。
针对虚幻项目进行的操作:
  • 虚幻编辑器Edit 菜单中选择 Project Settings 查看项目的配置选项。
  • 选择左边的 Platforms: iOS 标签。
  • Enable Game Center Support 设为 True






个人博客 : ericsong.org
chinabeater | 2016-9-4 16:36:25 | 显示全部楼层
真真的技术流啊,狂顶不止
回复 支持 反对

使用道具 举报

yuemingxishan | 2016-9-5 00:18:35 | 显示全部楼层
每次看熊猫的文字,都会对蓝图有全新的理解
回复 支持 反对

使用道具 举报

nameless123456 | 2016-9-5 14:01:19 | 显示全部楼层
谢谢分享,非常有用呢~~~~
回复 支持 反对

使用道具 举报

yuqinggame | 2016-9-6 05:38:30 | 显示全部楼层
感谢楼主分享资料
回复 支持 反对

使用道具 举报

山楂卷 | 2016-9-6 11:53:06 | 显示全部楼层
很好很好
回复

使用道具 举报

lmjs | 2016-9-6 16:23:50 | 显示全部楼层
真惭愧,感觉高大上,可是完全看不懂!!
回复 支持 反对

使用道具 举报

supervdreamer | 2016-10-14 23:06:24 | 显示全部楼层
支持一下
回复

使用道具 举报

shenzhen_lx800 | 2016-10-15 13:33:41 | 显示全部楼层
多谢分享~~~~
回复

使用道具 举报

abcdefg | 2017-2-1 14:57:31 | 显示全部楼层
支持一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则