

Keep in mind that while LZ4 AssetBundles are larger than LZMA AssetBundles, the AssetBundles in the Streamingssets folder will still be compressed further when included in a. every downloadable AssetBundle would include its own copy causing every downloadable bundle to be larger than it needs to be.īy keep these "system" assets inside an AssetBundle in the StreamingAssets folder compressed with LZ4, we get very fast load times and don't have duplicates in every downloadable asset bundle. If you have commonly used assets like fonts, shaders, etc. Assets placed in the Resources folder aren't available to assets inside AssetBundles! Instead a copy of the asset found in the Resources folder will be added to each downloadable AssetBundle that references it. The reason is that many of these "system" assets are referenced by other assets contained in AssetBundles that are downloaded from our servers. You may ask: "Why we you just keep these assets in the Resources folder and not inside an AssetBundle?" Using LZ4, the loading is nearly instantaneous (1-2 seconds). With LZMA, we would see 10-15 second startup times as the bundles in the StreamingAssets folder were decompressed. We found that LZMA decompression caused a pretty serious slowdown in the startup time of our app. These are things we want the user to see immediately without having to wait to download them from our server.

This includes things like dialogs, the initial game tutorial, etc. We keep all of "system" assets that we want immediately available to our app inside AssetBundles in the StreamingAssets folder. The tradeoff is that LZ4 bundles are larger than LZMA bundles. LZ4 decompression is way faster than LZMA decompression.
