首页 > 解决方案 > 构建 AssetBundle 运行时

问题描述

我正在使用 Unity,我需要一个按钮来调用一个允许我构建 AssetBundle 的函数,这样我就可以在 unity 外部制作一个允许我构建 AssetBundle 的软件;可能吗?谢谢你们。

标签: c#unity3dbundleassetbundle

解决方案


构建 AssetBundle 运行时

这是做不到的。buldingassetbundles 需要UnityEditor命名空间中的buildPipeline,因为它只是编辑器,所以在运行时无法访问。

除非您知道如何在自己的应用程序中复制他们的管道,否则您从 Unity 内部调用的为此创建一个外部应用程序很可能也不起作用,而且我怀疑您是否能够在 Unity 外部调用它(即使您可以它在运行时仍然无法工作,因为资产将变为只读)

我不确定您为什么要在运行时构建资产包,但我能想到的唯一可能适用于此的方法是使用 JSON/XML。

这将需要两个统一的实例来“实时”运行。统一的第一个实例是使用您想要制作成 anassetbundle 的对象运行您的游戏。单击按钮后,将调用一个函数,该函数将获取有关 GameObject 的所有信息(组件、值、ID,实际上是所有内容)并将其解析为 XML/JSON 文件。然后,该文件将被上传/保存到您的第二个 Unity 实例可以访问它的位置。然后,第二个统一实例将在编辑器时读取这个 JSON/XML 文件,从其中的数据重建原始游戏对象(这可以在编辑器时从脚本中完成),然后将这个重建的对象通过资产包管道。

请注意,虽然我自己从来没有这样做过,而且不是 100% 它会起作用。虽然我相当有信心,如果做得正确,它应该可以工作。


推荐阅读