Hello, I’m using Unity3d 5.1.4f1 with fmod 1.08.00. In my case, I packed bank files into Assetbundle, and then loaded those banks via FMODUnity.RuntimeManager.StudioSystem.loadBankMemory().
TextAsset masterStringsBank = ab.LoadAsset<TextAsset> ("master.strings.bank.bytes");
var ret = FMODUnity.RuntimeManager.StudioSystem.loadBankMemory (masterStringsBank.bytes, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out bank);
Debug.Log ("ret: " + ret); // ret: OK
TextAsset masterBank = ab.LoadAsset<TextAsset> ("master.bank.bytes");
ret = FMODUnity.RuntimeManager.StudioSystem.loadBankMemory (masterBank.bytes, FMOD.Studio.LOAD_BANK_FLAGS.NORMAL, out bank);
Debug.Log ("ret: " + ret); // ret: OK
It works well on my Mac and Android. But when I test my project on iPhone 6(iOS 9.2.1), it doesn’t play sounds by PlayOneShot with event name.
EventNotFoundException: FMOD Studio event not found 'event:/fire'
at FMODUnity.OneshotList.SetParameterValue (System.String name, Single value) [0x00000] in <filename unknown>:0
at FMODUnity.RuntimeManager.PlayOneShot (System.String path, Vector3 position) [0x00000] in <filename unknown>:0
at UnityEngine.Events.InvokableCallList.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0
at UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) [0x00000] in <filename unknown>:0
at UnityEngine.EventSystems.TouchInputModule.ProcessTouchPress (UnityEngine.EventSystems.PointerEventData pointerEvent, Boolean pressed, Boolean released) [0x00000] in <filename unknown>:0
at UnityEngine.EventSystems.TouchInputModule.ProcessTouchEvents () [0x00000] in <filename unknown>:0
(Filename: currently not available on il2cpp Line: -1)
I would try testing your code with the Mono backend if possible (I know that it’s impossible to submit to the store). 5.1.4 is old and there have been IL2CPP bugs affecting ‘script’ to native library function calls.
You can test if the strings bank is loaded.
// Right click an event in the tool and select copy GUID
// {e9b7aafa-2df0-4193-b32e-a74e5753cfa0}
System.Guid guid = new System.Guid(0xe9b7aafa, 0x2df0, 0x4193, 0Xb3, 0x2e, 0xa7, 0x4e, 0x57, 0x53, 0xcf, 0xa0);
FMOD.Studio.EventDescription desc;
FMODUnity.RuntimeManager.StudioSystem.getEventByID(guid, out desc);
string path;
desc.getPath(out path);
Debug.LogFormat("Path = {0}", path);
Path will be empty if the string bank failed to load.