I’m currently looking into how we can get FMOD working with our workflow. The short story is that we have various Asset Bundles, and users can create sessions using assets from across different Asset Bundles, which will include different FMOD banks. As such, each will probably contain different Master Bank.strings.bytes files, and we need to use loadBankMemory() each time one is downloaded by the user so that our path connections remain intact. As certain Asset Bundles will be uploaded at different times though, some will have newer .strings files included than others.
Do Master Bank.strings.bytes files override each other when loaded using loadBankMemory()? Or will they sort of contribute to a greater overall “list” of paths available to the current FMOD instance?
I hope that makes sense, but please let me know if I need to provide a bit clearer information.
Thank you for reading.
Normally banks of the same name will not be loaded a second time but strings banks are different. They are referenced by guid, so as long as they are different banks they will be loaded separately. Then when the system does any name lookups it will check all strings banks.
Awesome, that’s what I was hoping to hear. I just wanted to know, when you say “different” banks, how is this defined exactly? If I have a strings bank in one Asset Bundle that has all the guids, and then a newer Asset Bundle has all the guids plus two more new ones (for instance), are these considered different?
Thanks so much for your reply. (:
Internally to FMOD the bank guid is used as the identifier. If the newer bank has the same guid as an already loaded bank, it will not be loaded because the System will see it as the same bank and just add to the ref count.
There are a couple ways you can go with this:
- Use a bank with a different guid that only contains the new events.
- Unload the older bank before loading the newer one.
- If possible load the newer bank first.
Okay, great! That’ll help us a lot. Thank you so much Cameron!