【问题标题】:TVOS spritekit game data archive locationTVOS spritekit 游戏数据存档位置
【发布时间】:2017-05-16 20:54:22
【问题描述】:

我一直在尝试将舞台数据保存为我的 TVOS 游戏的 SKScene 存档。我让它在模拟器上工作。但是,TVOS 显然没有本地存储来存放存档。

我能想到的将存档放入的唯一其他地方是捆绑包本身(出于某种原因不赞成)和云(需要连接到云来读取真正应该只是的游戏数据似乎很愚蠢随游戏一起来)。

我现在不太确定正确的方法是什么。

【问题讨论】:

    标签: swift sprite-kit archive tvos


    【解决方案1】:

    UserDefaults 有 500kb,通过 iCloud KVS 有 1mb。其他一切都需要在 iCloud 中。

    我会看看你的场景图的 plist / dict 有多大,并确定从那里保存它的位置。

    Apple TV 上的存储空间有限,无法保证在用户下次打开您的应用时可以使用存储在设备上的信息。此外,为了在多个设备之间共享用户的数据,您需要将用户的信息存储在 Apple TV 以外的其他地方。 Apple 为 Apple TV 提供了两种共享存储选项:iCloud Key-Value Storage (KVS) 和 CloudKit。

    对于小于 1 MB 的小存储需求,您的应用可以使用 iCloud KVS。 iCloud KVS 自动在用户的所有设备上同步信息。只有应用程序的所有者才能访问 iCloud KVS 存储的信息。您应用的其他用户无法访问此信息。有关更多信息,请参阅在 iCloud 中为键值数据设计。

    对于大于 1MB 的大存储需求,您的应用需要实现 CloudKit。 CloudKit 允许另一个用户访问一个用户存储的信息。这在一个用户的行为影响另一个用户的选项的情况下非常有用;例如,用户在游戏回合中采取的直接影响其他用户的操作。

    https://developer.apple.com/library/content/documentation/General/Conceptual/AppleTV_PG/iCloudStorage.html#//apple_ref/doc/uid/TP40015241-CH10-SW1

    如果它很小,我会使用 UserDefaults,因为它既快速又简单,并且可以跨平台使用相同的代码。

    【讨论】:

      【解决方案2】:

      我一直在尝试将舞台数据保存为我的 TVOS 游戏的 SKScene 存档。我让它在模拟器上工作。然而,TVOS 显然没有本地存储来存放存档。

      你有少量的本地存储...

      我能想到的唯一其他放置存档的地方是捆绑包本身(由于某种原因不赞成)

      您在本地有UserDefaults 500kb 和 iCloud KVS 1mb(最多 1024 个密钥)用于其他小型存储。

      还有云(需要连接到云来读取游戏中真正应该附带的游戏数据似乎很愚蠢)。

      当您使用 Apple 库时,您最终会习惯于做一些愚蠢的事情:{

      我现在不太确定正确的方法是什么。

      根据图表的大小使用UserDefaultsCloudKit,然后给Apple 写一封愤怒的电子邮件(我们都应该这样做)。

      【讨论】:

        【解决方案3】:

        tvOS 确实有本地存储。但是,它被限制为 4 GB。

        自 2017 年 1 月 12 日起 - Apple 现在接受大小不超过 4GB 的 tvOS 应用程序包。在此处查看公告:Now Accepting Larger tvOS Binaries

        tvOS 应用程序包的大小限制已从 200 MB 增加到 4 GB,因此您可以在提交的内容中包含更多媒体,并在安装时提供完整、丰富的用户体验。此外,tvOS 应用程序可以使用按需资源在 App Store 上托管多达 20 GB 的额外内容。


        2017 年 1 月 12 日之前 - 限制为 200 MB。此后,Apple 的文档已更新以反映这一变化。

        来自documentation

        您的应用的本地存储空间有限

        tvOS 应用程序包的最大大小 200 MB 4 GB。此外,您的应用程序只能访问设备本地的 500 KB 持久存储(使用 NSUserDefaults 类)。在这个有限的本地存储之外,所有其他数据必须在空间不足时由操作系统清除。您可以通过以下几种方式管理这些资源:

        • 您的应用可以在 iCloud 中存储和检索用户数据。

        • 您的应用可以将所需的数据下载到其缓存目录中。应用程序运行时不会删除下载的数据。但是,当空间不足且您的应用程序未运行时,这些数据可能会被删除。不要使用整个缓存空间,因为这会导致不可预知的结果。

        • 您的应用可以使用按需资源打包只读资产。然后,在运行时,您的应用程序会请求它需要的资源,操作系统会自动下载和管理这些资源。了解如何以及何时加载新资产同时保持用户参与度对于创建成功的应用程序至关重要。有关按需资源的信息,请参阅On-Demand Resources Guide

        这意味着为新 Apple TV 开发的每个应用程序都必须能够将数据存储在 iCloud 中并以提供出色客户体验的方式检索数据。

        如果您的捆绑包超过 200 MB 4 GB 限制,您将不得不采用 Apple 上述选项之一。正确的操作方式取决于您的游戏架构,更具体地说,该架构如何处理按需资产。

        【讨论】:

        • 这是关于游戏内容的存储,而不是游戏数据。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多