Suppose that you have thousands of individual resources that need to be loaded dynamically (e.g. some kind of procedural or randomized world that spawns all manner of things etc). There are many ways you could manage the resource loading, like Resources, or AssetBundles, or Addressables, etc.
There is another option, which involves putting your asset data together into "block" files. This is done notably in Genshin Impact, if you look at their StreamingAssets folder. I would like to learn more about how this is typically implemented in the context of Unity, but cannot find many resources online about it.
Off the top of my head, this could be as simple as having an index table file to locate individual assets and then use file streams on the blocks to Seek()
as needed and then load the bytes to build the assets, but I feel there may be more to it than just that: for example, there is specific folder structure separating the .blk
files (folders going 00
, 01
, 02
etc instead of just putting all the blocks together and whatnot).
What is the typical way of authoring and implementing dynamic assets via blocks, in Unity? Are there guides/resources about this approach?