【发布时间】:2022-01-04 21:06:23
【问题描述】:
我想将资产包的所有子精灵加载到精灵列表中。我的assetbundle 由SpriteMode 等于Multiple 的精灵组成。我的assetbundle 由SpriteMode 等于Multiple 的精灵组成。我的资产包由 SpriteMode 等于 Multiple 的 sprite 组成。
CachedAssetBundle cached = new CachedAssetBundle();
cached.name = StaticStrings.emojisBundleCached;
using (WWW web = WWW.LoadFromCacheOrDownload(url, cached))
{
yield return web;
AssetBundle remoteAssetBundle = web.assetBundle;
while (!web.isDone) ;
Debug.LogError(url);
String[] names = remoteAssetBundle.GetAllAssetNames();
foreach (String sp in names)
{
Debug.LogError(sp);
AssetBundleRequest asset = remoteAssetBundle.LoadAssetWithSubAssetsAsync<Sprite>(sp);
yield return asset;
Debug.LogError("Size " + asset.allAssets.Length);
foreach (Sprite s in asset.allAssets)
{
Debug.LogError("Name sub " + s.name);
}
// GameManager.Instance.bundleListEmojis.Add(remoteAssetBundle.LoadAssetWithSubAssets<Sprite>(sp.name));
}
if (remoteAssetBundle == null)
{
Debug.LogError("Failed to download AssetBundle!");
yield break;
}
remoteAssetBundle.Unload(false);
}
【问题讨论】:
-
只是一个旁注:
while (!web.isDone) ;.. 哎呀!一般来说WWW已被弃用.. 而是使用UnityWebRequestAssetBundle
标签: c# unity3d assetbundle