我正在尝试从文件加载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位)构建。我也尝试使用最新的beta版本构建两者,但这并没有解决问题。
将BuildTarget更改为BuildTarget.StandaloneWindows64也无法解决问题。
答案 0 :(得分:2)
Unity文档在AssetBundles上已经过时了,因为Unity 2017他们引入了一个全新的资产捆绑系统,该系统更易于使用,并且可以使用改进的用户界面AssetBundle Browser
我在使用assetbundles从Unity 5.x切换到2017.x时遇到了问题,它实际上要求我使用新的assetbundle系统,并通过它来构建/加载它们以使它们再次工作。
获取Assetbundle浏览器:
建立资产捆绑:
在这里,您将看到两个选项卡,“configure”和“Build”。通过将对象的预制件拖动到配置选项卡中,选择要构建的assetbundle。你会得到一个问题,询问你是想把它建成一个大包或多个单独的包,选择你喜欢的。
如果多个捆绑包共享相同的资产,浏览器也会发出警告,并建议制作一个包含所有共享资源的单个捆绑包,具体取决于捆绑包的数量和大小,这可以节省大量空间。
然后,如果您转到“构建选项卡”,您可以选择要构建的平台和输出路径,以及一些其他选项,例如压缩类型。然后,您只需单击“构建”以构建与Unity 2017.x兼容的新资产包。
加载Assetbundle:
从文件加载assetbundle就像使用以下代码一样简单:AssetBundle myAssetBundle = AssetBundle.LoadFromFile(path);
您还可以从内存中加载assetbundle(以字节为单位)或直接从流中加载。
新的AssetBundle浏览器的另一个好处是您可以根据需要自定义它所有文件都可以在/Assets/Editor/AssetBundleBrowser/
中找到。例如,我包含了在完成构建后自动将所有软件包上传到FTP的功能。
编辑:Unity AssetBundle浏览器工具适用于5.6或更高版本。