c# - 构建 AssetBundle 运行时
问题描述
我正在使用 Unity,我需要一个按钮来调用一个允许我构建 AssetBundle 的函数,这样我就可以在 unity 外部制作一个允许我构建 AssetBundle 的软件;可能吗?谢谢你们。
解决方案
构建 AssetBundle 运行时
这是做不到的。buldingassetbundles 需要UnityEditor命名空间中的buildPipeline,因为它只是编辑器,所以在运行时无法访问。
除非您知道如何在自己的应用程序中复制他们的管道,否则您从 Unity 内部调用的为此创建一个外部应用程序很可能也不起作用,而且我怀疑您是否能够在 Unity 外部调用它(即使您可以它在运行时仍然无法工作,因为资产将变为只读)
我不确定您为什么要在运行时构建资产包,但我能想到的唯一可能适用于此的方法是使用 JSON/XML。
这将需要两个统一的实例来“实时”运行。统一的第一个实例是使用您想要制作成 anassetbundle 的对象运行您的游戏。单击按钮后,将调用一个函数,该函数将获取有关 GameObject 的所有信息(组件、值、ID,实际上是所有内容)并将其解析为 XML/JSON 文件。然后,该文件将被上传/保存到您的第二个 Unity 实例可以访问它的位置。然后,第二个统一实例将在编辑器时读取这个 JSON/XML 文件,从其中的数据重建原始游戏对象(这可以在编辑器时从脚本中完成),然后将这个重建的对象通过资产包管道。
请注意,虽然我自己从来没有这样做过,而且不是 100% 它会起作用。虽然我相当有信心,如果做得正确,它应该可以工作。
推荐阅读
- c# - 我有错误“System.Net.WebException:'远程服务器返回错误:(403)禁止。” 在 C# 中连接到网站时
- python - python np.where 引用数组中的前一个值?
- android - 如何检测 Viewholder 中发生的 notifyitemchanged?
- loops - Google Script - 在电子表格中自动创建新工作表后在预定义的单元格中设置公式
- c - 转换三个 uint32_t 以在 C 中生成唯一键的更快方法
- java - 什么是 txt 文件或字符串中每个字符的熵以及如何在 java 中做到这一点?
- python - MariaDB中使用python mysql连接器的浮点精度
- javascript - Big.js Typescript 错误:提供“--isolatedModules”标志时无法访问环境常量枚举。ts(2748)
- python - python : Why this code did not work? (invalid syntax)
- javascript - 如何在摩纳哥编辑器中触发向下箭头