2

来自这个线程:关于 GKAchievement 中的百分比完成

到目前为止,我已经设法报告了成就进度,并且当提交的进度不包含十进制值(例如执行 10 次任务以获得此 x 成就)时,我没有任何问题。然后,每个 reportProgress 将是 10%。

但是,我正在尝试编写一项成就,该成就只能在完成一项任务 1000 次后才能完成。因此,完成的每项任务都有 0.1 个进度。

检索percentComplete时如何获取十进制值是否有修复?我不确定保存的值或返回的值是否转换为 int。

我要做的是从 GameCenter 检索当前的成就进度,并在每次任务完成时将其增加 0.1d。如果我尝试报告 4.1d 的进度,我会在日志中看到:

上报成绩 de.company.testapp.achievement1, 4.100000

那是系统生成的日志。那么假设GameCenter将其保存为带小数的双精度并且仅在您请求percentComplete时返回整数是否正确?

当然,我可以保留一个本地计数器,但我试图避免在用户切换到另一台设备时或本地经过身份验证的用户在设备内发生更改时出现分数不一致。同步分数或更新我们的服务器以跟踪每个玩家的每一项成就可能有点过分。

有人对我应该如何正确处理跟踪这种成就有任何建议吗?

提前致谢。

PS。我在 Unity 中开发,所以我使用 GameCenterPlatform,但我尝试在 Objective-c 端检索百分比完成,但它也返回百分比完成的整数。

4

2 回答 2

0

我认为本地存储是您唯一的选择。如果您担心跨设备跟踪,您可以尝试使用云存储来获取特定信息。我认为这是您以比 GameCenter 允许的更高的精度跟踪信息的唯一真正选择,除非您还想在 GameCenter 的辅助服务器上跟踪信息。

于 2013-03-28T15:09:29.280 回答
0

我也期待苹果提供与此问题相关的错误修复,但发现这个......

Apple 的回答:“百分比使用双精度报告,但存储为整数百分比,例如 1%、2%、3%、...、100%。无论如何,您可能应该在本地存储进度,因为它们可能在某个地方无法连接到游戏中心。”

对于可以访问 Apple 开发论坛的用户: https ://devforums.apple.com/message/522769

建议: - 我们可以使用云用户默认首选项来存储我们的分值。这是一个有用的云偏好库 https://github.com/ArtSabintsev/Zephyr

于 2018-01-12T13:31:33.627 回答