
Assignment to AssetBundles happens at the Asset level. This dependency information is used to determine the set of Objects that will be included in an AssetBundle. Public static T GetSubAssets(UnityEngine.Object allAssets) where T : classįor (int i = 0 i < allAssets. Unity’s AssetBundle system will discover all dependencies of an Object when the Object is built into an AssetBundle. To extract the sprite from the returned array use a helper function, e.g … public static T GetSubAsset(UnityEngine.Object allAssets) where T : class LoadAssetWithSubAssets just loads the single asset you’ve requested (and any embedded sub assets).


Note, to be clear AssetBundle.LoadAllAssets() is different and probably not what you want, that loads all assets in the bundle into memory. Sprites are considered sub assets of the main asset (png, jpg etc), Unity encodes the details in the meta file - it does this for all assets that arrive in native format. Same applies when using Resources - the method there is called LoadAllAssetsAtPath. I had the same issue, the solution is to use LoadAssetWithSubAssets or the async version. Waking this up with an actual answer (and Ignoring the slightly patronising one above.)
