Unity のアセット バンドルに問題があります。同じ名前で拡張子が異なる複数のアセットを含むバンドルがあります (bonus.png Bonus.prefab など)。
ボーナスという名前のプレハブをインスタンス化しようとすると、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 ループを使用すると、アセットを見つけて適切にインスタンス化できます。しかし、それはただの汚い方法です。