Hey,
we’re using the localized audio table feature inside Fmod Studio. This creates a bank for each language our game supports, which have to be unloaded/loaded to support language switching.
My question is why does the getBankList method not return these banks, if we want to track all banks exported from Fmod and their loading state.
Now I have to guess a bit which functions are available for these localized banks, if I want to query it manually 
This info is available in edit mode if you open the FmodSettings dataobject in debug view, since a bank is either master bank or not, it will be visible in the Master list or Bank list.
Localized banks are functionally treated as the same bank by the API, despite the difference in file name. This means that localized banks loaded after the first aren’t loaded or registered with the Studio System, and that Studio.System.getBankList()
only returns the non-localized bank name (i.e. “Dialogue” instead of “Dialogue_EN”).
Since you’re using FMOD for Unity, you can use RuntimeManager.HasBankLoaded()
to query the banks that have been registered with RuntimeManager. If you’re not making use of RuntimeManager, you’ll need to track this information yourself in order to query it.
What do you mean by registered with the RuntimeManager?
We built the banks, and if I set the FmodSettings to load Specific banks at startup, then click Add All, I see all banks appear in the list, including localized banks. I don’t understand why you combine localized banks at runtime, but offer the option to load them as separate from your settings file…
Localized banks are treated the same by the sytem at runtime to ensure that they’re functionally identical besides the localized sample data. The 'Load Bank" option in FMOD Settings is a very simple setting - it just allows you set which banks to load from the bank directory, and doesn’t contain any extra functionality that handles localized banks.
I can definitely see the use in RuntimeManager
having some kind of system for handling locales in a smoother manner, so I’ve added it to our internal improvement tracker.
Apologies, I phrased this badly.
RuntimeManager.HasBankLoaded()
checks the provided bank name against a list of all currently loaded banks that have been loaded via RuntimeManager
. If a bank matching the provided name is present, it will return true.
Just to follow up on this - was my explanation sufficient to explain what was happening with the localized banks in Unity? If not, did you have any other questions or concerns?
Sorry for the late response.
Ideally, if the banks are exported when we build from FMOD, the API should be aware each bank produced as a result of the localized audio table is infact it’s own bank.
Not a problem!
I’ve noted this on our internal improvement tracker as well.