
下面是我的代码:
AssetBundle ab = AssetBundle.LoadFromFile(Application.dataPath + "/uia.manifest");//get null here
AssetBundleManifest manifest = (AssetBundleManifest)ab.LoadAsset("AssetBundleManifest");发布于 2020-01-21 01:52:24
看一看Using AssetBundles Natively,特别是Loading AssetBundle Manifests一节
加载AssetBundle清单的
非常有用。尤其是在处理AssetBundle依赖关系时。
要获得可用的AssetBundleManifest对象,您需要加载额外的AssetBundle (的名称与中的文件夹名称相同),并从中加载AssetBundleManifest类型的对象。
加载清单本身的过程与从AssetBundle加载任何其他资产的过程完全相同:
AssetBundle assetBundle = AssetBundle.LoadFromFile(manifestFilePath);AssetBundleManifest清单= assetBundle.LoadAsset("AssetBundleManifest");
尽管没有很好的文档,但老实说,在AssetBundles.LoadFromFile周围的示例中,您可以看到它们不加载 "Example.manifest" as AssetBundle,而只加载没有后缀的"Example"!
因此,在您的例子中,它似乎被放在Assets/uia中,并且您将以AssetBundle格式加载此归档文件,而不是其中的特定文件。
AssetBundle assetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.dataPath, "uia"));
AssetBundleManifest manifest = assetBundle.LoadAsset<AssetBundleManifest>("AssetBundleManifest");“AssetBundle”可以指两个不同但相关的事物。
首先是磁盘上的实际文件。这称为AssetBundle存档。AssetBundle存档是一个容器,就像文件夹一样,它在中保存额外的文件。
清单是这个归档文件的一部分,只能通过加载AssetBundle然后从中获取清单来加载→!
发布于 2021-03-05 19:25:11
必须在AssetBundle.LoadFromFile中加载的文件是文件Assets,该文件存储在与AssetBundle uia相同的文件夹中。此Assets文件的名称与存储文件夹的名称相同,在本例中为Assets。您的代码将如下所示:
AssetBundle ab = AssetBundle.LoadFromFile(Application.dataPath + "/Assets");
AssetBundleManifest manifest = (AssetBundleManifest)ab.LoadAsset("AssetBundleManifest");https://stackoverflow.com/questions/59819909
复制相似问题