【问题标题】:Unity Asset Bundles - Which Files Do I Deploy?Unity 资产包 - 我要部署哪些文件?
【发布时间】:2020-10-07 13:37:46
【问题描述】:

我使用 Unity documentation section on AssetBundle Workflow 中给出的说明从我的 Unity 资产创建了一些资产包。运行“Build AssetBundles”命令后,每个资产包都会生成四个文件:myasset、myasset.meta、myasset.manifest、myasset.manifest.meta。

现在我准备将这些包部署到 Web 服务器并在我的 Unity 项目中实现下载/缓存。我发现了许多示例,例如 this,它们显示下载 URL 是一个扩展名为 .unity3d 的文件。这让我得出结论,我错过了一个步骤 - 我假设应用程序需要我的所有四个文件,并且我必须先做一些事情将它们组合成一个 .unity3d 文件。

我需要部署哪些文件?在我的文件准备好上传之前,我是否需要采取任何其他步骤?提前感谢您的任何建议!

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    myasset 就足够了。

    有时人们可以选择将.unity3d 作为文件扩展名添加到他们的资产包中。这只是一个社区约定,完全是可选的。 Source(复制如下)

    文森特-张

    Unity 技术

    提醒一下,我们没有用于资产包的官方文件扩展名“.unity3d”,这不是强制性的。您可以根据需要使用任何文件扩展名,也可以不使用文件扩展名。

    但通常人们使用“.unity3d”作为文件扩展名只是因为我们第一次在官方示例代码中使用它......

    【讨论】:

    • 感谢您的澄清!
    【解决方案2】:

    Unity 为所有资产创建 .meta 文件——您不必担心这些。总之,你的 myasset 文件就足够了。我不添加文件扩展名。请注意,如果您使用共享示例中显示的策略,则客户端每次都会从服务器重新下载捆绑包。如果要利用缓存,则需要另外提供版本号。您可以在一些方法重载here 中看到这一点,这些方法具有 Hash128 或 uint "version" 参数。缓存很棒,因为您下次可以使用已经保存在设备上的包,而不是在未发生更改时从服务器下载。您提供的版本/哈希号本质上会映射到文件名。只要找到匹配的版本,就会使用磁盘上的文件。当内容发生变化时,将版本号更新为其他内容以强制客户端重新下载。

    您可能需要参考 .manifest 文件中列出的 CRC 值。您可能已经注意到我分享的链接中的 crc 参数。这可用于确保捆绑数据传输期间的数据完整性。您可以确保下载的内容的 CRC 与您创建捆绑包时的 CRC 匹配。

    【讨论】:

      猜你喜欢
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多