gpt4 book ai didi

unity-game-engine - 如何加载不知道 Assets 名称的 Assets 包?

转载 作者:行者123 更新时间:2023-12-02 16:48:06 27 4
gpt4 key购买 nike

我想从我的资源包中加载并实例化资源,但在 unity 5.+ 中我可以使用如下代码来完成:注意:我的 assetbundle 内部有一个 asset,例如:

AssetBundle myLoadedAssetBundle;
public string path;

void Start()
{
LoadAssetBundle(path);
}

void LoadAssetBundle(string bundleUrl)
{
myLoadedAssetBundle = AssetBundle.LoadFromFile(bundleUrl);
Debug.Log(myLoadedAssetBundle == null ? "Faild To Load" : "Succesfully Loaded!");
Debug.Log(myLoadedAssetBundle.mainAsset.name);

Instantiate(myLoadedAssetBundle.mainAsset);

}

}

其实我也用

Debug.Log(myLoadedAssetBundle.mainAsset.name);

记录我的 Assets 包的主要 Assets 名称!

但是在 5+ 之后的 unity 中,他们说 mainasset 已经过时了。

我的问题是:

1- 如何加载不知道资源名称的资源包?

2- 如何实例化或分配加载 assetbundle 的 Sprite ?

最佳答案

根据AssetBundle文档,现在可以调用 GetAllAssetNames()以字符串数组形式返回包中所有 Assets 名称的列表。您可以通过 for 循环使用这些资源名称从 bundle 中加载资源。

或者,如果您保证每个 bundle 只有 1 个 Assets ,您可以简单地获取索引 0 处的字符串(不推荐)。

此外,您可以使用LoadAllAssets()在不知道名称的情况下加载资源。它返回特定类型的数组(在您的情况下您将指定 Sprite)。

关于unity-game-engine - 如何加载不知道 Assets 名称的 Assets 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59185028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com