带冷却时间的宝箱
无论是获得物品、货币、额外生命值还是能量加成,玩家都喜欢免费的东西!向回归游戏的玩家赠送每日礼物可以提高参与度、内在动力,促使玩家定期登录,并整体提升对游戏的兴趣。每日奖励也可以作为未来引入付费应用内购买的前奏。此示例演示了如何在定时冷却时间内授予随机奖励。玩家领取奖励后,必须等待预设时间才能领取另一份奖励。
先决条件
要使用此示例使用案例,您必须 下载并安装 Unity 项目中的 UGS 使用案例项目。
概述
要查看此使用案例的实际效果,打开示例菜单 并导航至 **带冷却时间的宝箱**。 要直接打开此场景并与使用案例进行交互
- 在 Unity 编辑器 **项目** 窗口中,选择 **Assets** > **Use Case Samples** > **Loot Boxes With Cooldown**,然后双击
LootBoxesWithCooldownSample.unity
打开示例场景。 - 按 **Play** 进入播放模式。
初始化
DailyRewardsSceneManager.cs
脚本在其 Start
函数中执行以下初始化任务
- 初始化 Unity 游戏服务。
- 从经济服务检索并更新玩家的货币余额。
功能
单击 **领取每日奖励** 按钮时,您将从可用池中获得随机数量的奖励(在货币 HUD 中显示)。 为演示目的,冷却时间设置为 60 秒。 将发生以下情况
- 按钮的
OnClick
方法调用云代码以执行GrantTimedRandomReward
函数,该函数从内部列表中选择随机货币和库存物品以进行奖励。 - 经济服务直接授予奖励并将最终结果返回给客户端。
此示例还使用云代码访问云保存以实现奖励之间的冷却时间,并返回
- 一个标志,指示是否应启用 **领取每日奖励** 按钮。
- 当前的冷却时间(以秒为单位)。
- 领取奖励时本地重置计时器所需的默认冷却时间。
注意:此示例还包括增强的错误处理,以捕获和解决由于过频繁地调用经济服务(每秒超过五次)而出现的错误,这将触发带有 RateLimited 原因的 EconomyException 异常。 此示例捕获异常,使用指数回退暂停 0.1 秒,然后重试,直到成功。
设置
要求
要复制此使用案例,您需要在项目中包含以下 Unity 包
包 | 角色 |
---|---|
身份验证 | 将玩家自动登录为匿名用户,以便跟踪其数据服务器端。 |
云代码 | 访问冷却时间状态,通过经济服务器选择和授予随机货币和库存物品,然后返回奖励的结果。 |
云保存 | 存储和检索上次授予奖励的时间,以允许冷却时间值在会话之间持续存在。 |
部署 | 为云服务提供一个一致的接口来部署资产。 |
经济 | 在运行时检索开始和更新的货币余额。 |
要在游戏中使用这些服务,请在 Unity 云仪表盘 中为您的组织和项目激活每个服务。
Unity 云服务配置
要在您自己的 Unity 项目中复制此示例场景的设置,请配置以下项目
- 云代码脚本
- 经济项目
要配置这些项目,您可以 使用部署包,或者 使用 Unity 云仪表盘手动输入它们。 建议的最佳做法是使用部署包,因为它可以大大加快此过程。
使用部署包
要使用部署包部署配置
- 打开 部署窗口。
- 选中
Common
和Loot Boxes
。 - 单击
部署所选项
。
这将部署所有必要的项目。
使用 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
文件夹中包含的云代码脚本是本地副本,因为您无法查看示例项目的仪表盘。 对这些脚本的更改不会影响此示例的行为,因为它们不会自动上传到云代码服务。
经济
资源类型 | 资源名称 | ID | 描述 |
---|---|---|---|
货币 | 金币 | COIN | 用于随机宝箱奖励池的货币。 |
货币 | 宝石 | GEM | 用于随机宝箱奖励池的货币。 |
货币 | 珍珠 | PEARL | 用于随机宝箱奖励池的货币。 |
货币 | 星星 | STAR | 用于随机宝箱奖励池的货币。 |
库存物品 | 剑 | SWORD | 用于随机宝箱奖励池的库存物品。 |
库存物品 | 盾牌 | SHIELD | 用于随机宝箱奖励池的库存物品。 |