带冷却时间的宝箱

无论是获得物品、货币、额外生命值还是能量加成,玩家都喜欢免费的东西!向回归游戏的玩家赠送每日礼物可以提高参与度、内在动力,促使玩家定期登录,并整体提升对游戏的兴趣。每日奖励也可以作为未来引入付费应用内购买的前奏。此示例演示了如何在定时冷却时间内授予随机奖励。玩家领取奖励后,必须等待预设时间才能领取另一份奖励。

先决条件

要使用此示例使用案例,您必须 下载并安装 Unity 项目中的 UGS 使用案例项目。

概述

要查看此使用案例的实际效果,打开示例菜单 并导航至 **带冷却时间的宝箱**。 要直接打开此场景并与使用案例进行交互

  1. 在 Unity 编辑器 **项目** 窗口中,选择 **Assets** > **Use Case Samples** > **Loot Boxes With Cooldown**,然后双击 LootBoxesWithCooldownSample.unity 打开示例场景。
  2. 按 **Play** 进入播放模式。

初始化

DailyRewardsSceneManager.cs 脚本在其 Start 函数中执行以下初始化任务

  1. 初始化 Unity 游戏服务。
  2. 从经济服务检索并更新玩家的货币余额。

功能

单击 **领取每日奖励** 按钮时,您将从可用池中获得随机数量的奖励(在货币 HUD 中显示)。 为演示目的,冷却时间设置为 60 秒。 将发生以下情况

  1. 按钮的 OnClick 方法调用云代码以执行 GrantTimedRandomReward 函数,该函数从内部列表中选择随机货币和库存物品以进行奖励。
  2. 经济服务直接授予奖励并将最终结果返回给客户端。

此示例还使用云代码访问云保存以实现奖励之间的冷却时间,并返回

  • 一个标志,指示是否应启用 **领取每日奖励** 按钮。
  • 当前的冷却时间(以秒为单位)。
  • 领取奖励时本地重置计时器所需的默认冷却时间。

注意:此示例还包括增强的错误处理,以捕获和解决由于过频繁地调用经济服务(每秒超过五次)而出现的错误,这将触发带有 RateLimited 原因的 EconomyException 异常。 此示例捕获异常,使用指数回退暂停 0.1 秒,然后重试,直到成功。

设置

要求

要复制此使用案例,您需要在项目中包含以下 Unity 包

角色
身份验证将玩家自动登录为匿名用户,以便跟踪其数据服务器端。
云代码访问冷却时间状态,通过经济服务器选择和授予随机货币和库存物品,然后返回奖励的结果。
云保存存储和检索上次授予奖励的时间,以允许冷却时间值在会话之间持续存在。
部署为云服务提供一个一致的接口来部署资产。
经济在运行时检索开始和更新的货币余额。

要在游戏中使用这些服务,请在 Unity 云仪表盘 中为您的组织和项目激活每个服务。

Unity 云服务配置

要在您自己的 Unity 项目中复制此示例场景的设置,请配置以下项目

  • 云代码脚本
  • 经济项目

要配置这些项目,您可以 使用部署包,或者 使用 Unity 云仪表盘手动输入它们。 建议的最佳做法是使用部署包,因为它可以大大加快此过程。

使用部署包

要使用部署包部署配置

  1. 打开 部署窗口
  2. 选中 CommonLoot Boxes
  3. 单击 部署所选项

这将部署所有必要的项目。

使用 Unity 云仪表盘

您可以使用 Unity 云仪表盘 按项目和环境手动配置您的服务。 请参阅以下部分以配置此示例。

云代码

在 Unity 云仪表盘中发布以下脚本

脚本参数描述项目中的位置
LootBoxesWithCooldown_Claim检查冷却时间是否已过期(或从未设置),然后从奖励池中选择随机奖励,授予玩家奖励,然后更新冷却时间计时器。Assets/Use Case Samples/Loot Boxes With Cooldown/Cloud Code/LootBoxesWithCooldown_Claim.js
LootBoxesWithCooldown_GetStatus检查上次授予时间并返回一个标志,指示玩家是否有资格获得奖励。Assets/Use Case Samples/Loot Boxes With Cooldown/Cloud Code/LootBoxesWithCooldown_GetStatus.js

注意Cloud Code 文件夹中包含的云代码脚本是本地副本,因为您无法查看示例项目的仪表盘。 对这些脚本的更改不会影响此示例的行为,因为它们不会自动上传到云代码服务。

经济

在 Unity 云仪表盘中配置以下资源

资源类型资源名称ID描述
货币金币COIN用于随机宝箱奖励池的货币。
货币宝石GEM用于随机宝箱奖励池的货币。
货币珍珠PEARL用于随机宝箱奖励池的货币。
货币星星STAR用于随机宝箱奖励池的货币。
库存物品SWORD用于随机宝箱奖励池的库存物品。
库存物品盾牌SHIELD用于随机宝箱奖励池的库存物品。