FMOD.Studio.Bank

Hello!

I use Unity. Sorry if my question is very obviously question. But i don´t know get use FMOD.Studio.Bank.
I can load a bank use RuntimeManager.LoadBank() but i don´t know to access by FMOD.Studio.Bank
Anybody can help me and show me how is in code, using of FMOD.Studio.Bank.loadSampleData() ?? An example Script.

I don’t know if is the same of RuntimeManager.LoadBank()

Another question is that i donut feel the different between use Preload Data, and don’t use. There are any way of get the time of latency between you pres any key and the sound start. In streaming sound too.

Thanks for all,

Adrian.

The FMOD.Studio.Bank variable_name declares the variable variable_name to be an FMOD Bank. When using this with the RuntimeManager helper function, it’s not possible to mix this helper file with the FMOD bank variable. So you can either use:

FMODUnity.RuntimeManager.LoadBank("bank://Master.bank", true); // The "true" is for loading sample data

Or:

FMOD.Studio.System sys = FMODUnity.RuntimeManager.StudioSystem;
FMOD.Studio.Bank fmod_bank;
sys.loadBankFile("bank://Master.bank", FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out fmod_bank);
fmod_bank.loadSampleData();
1 Like

Thanks!!! Thank very much for help me. What is the different between use RuntimeManager, and use the other way?

Sorry, but Unity tell me an error about :

sys.loadBankFile(“bank://Prueba.bank”, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out bank);

error:

[FMOD] FMOD_OS_File_Open : fopen failed to open ‘bank://Prueba.bank’, errno = 2

UnityEngine.Debug:LogError(Object)
FMODUnity.RuntimeManager:DEBUG_CALLBACK(DEBUG_FLAGS, StringWrapper, Int32, StringWrapper, StringWrapper) (at Assets/Plugins/FMOD/src/Runtime/RuntimeManager.cs:28)

Thanks again.

The difference is just that RuntimeManager are helper functions. They actually perform the same actions as the longer version.

In regards to your error, it’s most likely due to the way Unity stores its files. Try using the following:

[FMODUnity.BankRef]
public string bankPath; // Put this and the line above at the top of the file, after "public class" and before "void Start"

FMODUnity.RuntimeManager.LoadBank(bankPath, true); // The "bankPath" variable will take the path provided by the GUI bank selector

This will make a bank browser appear in the component where the script is on the game object. You can select the bank needed from here and this will be automatically get the correct path from within Unity.

1 Like