我正在尝试从文件加载 AssetBundle,但是出现以下错误: The AssetBundle 'path\to\file' could not be loaded because it is not compatible with this newer version of the Unity runtime. Rebuild the AssetBundle to fix this error.
我构建了我的 AssetBundle,如 Unity wiki 所示:
using UnityEditor;
namespace Editor
{
public class CreateAssetBundles
{
[MenuItem("Assets/Build AssetBundles")]
private static void BuildAllAssetBundles()
{
BuildPipeline.BuildAssetBundles("Assets/AssetBundles",
BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
}
}
}
这会生成一个外观正确的 AssetBundle,清单文件也看起来不错。
我使用以下代码加载 AssetBundle:
var assetBundle = AssetBundle.LoadFromFile(path);
AssetBundle 和游戏都是使用相同版本的 Unity 构建的,版本 2017.3.1f1(64 位)。我还尝试使用最新的可用测试版构建两者,但这并没有解决问题。
将 BuildTarget 更改为 BuildTarget.StandaloneWindows64 也不能解决该问题。
Unity 文档在 AssetBundles 上有点过时,自 Unity 2017 以来,他们引入了一个全新的 AssetBundle 系统,该系统更易于使用,并与称为AssetBundle 浏览器的改进 UI 配合使用
我在使用 assetbundle 从 Unity 5.x 切换到 2017.x 时遇到了问题,它实际上需要我使用新的 assetbundle 系统,并通过它构建/加载以使它们再次工作。
获取 Assetbundle 浏览器:
构建资产包:
在这里,您将看到两个选项卡,“配置”和“构建”。通过将对象的预制件拖到配置选项卡中来选择要构建的资产包。您会收到一个问题,询问您是要将其构建为一个大包还是多个单独的包,请选择您喜欢的任何一个。
如果多个包共享相同的资源,浏览器也会发出警告,并建议制作一个包含所有共享资源的单独包,这取决于包的数量和大小,这可以节省大量空间。
然后,如果您转到“构建选项卡”,您可以选择要构建的平台和输出路径,以及一些其他选项,例如压缩类型。然后你所要做的就是点击“Build”来构建与unity 2017.x兼容的新资产包
加载资产包:
从文件加载资产包就像使用以下代码一样简单:AssetBundle myAssetBundle = AssetBundle.LoadFromFile(path);
您还可以从内存加载资产包(以字节为单位)或直接从流加载。
新的 AssetBundle 浏览器的另一个好处是您可以根据需要对其进行自定义,所有文件都可以在/Assets/Editor/AssetBundleBrowser/
. 例如,我包含了在构建完成后自动将所有包上传到 FTP 的功能。
编辑:Unity AssetBundle 浏览器工具适用于 5.6 或更高版本。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句