我对统一的资产包有疑问。我有一个包含多个资产的捆绑包,名称相同,但扩展名不同,例如 bonus.png bonus.prefab。
当我尝试实例化一个名为 Bonus 的预制件时,assetBundle.LoadAssets("bonus") 函数不会像通常那样返回一个游戏对象。这似乎只有在我有多个同名资产时才会发生。
AssetBundleRequest request = assetBundle.LoadAssetAsync(m_ObjectsToPool[i].m_Name, typeof(GameObject));
yield return request;
GameObject prefab = request.asset as GameObject;
if (prefab != null)
{
PoolManager.Instance.AddLoadedPrefabToPool(prefab, m_ObjectsToPool[i].m_Name, null, m_ObjectsToPool[i].m_Amount);
}
但是如果我调用 loadallassets(typeof(GameObject)) 然后使用 for 循环,我可以找到我的资产并正确地实例化它。但这只是一种肮脏的做法。