Audiokinetic's Community Q&A is the forum where users can ask and answer questions within the Wwise and Strata communities. If you would like to get an answer from Audiokinetic's Technical support team, make sure you use the Support Tickets page.

Wwise 2015.1/Unity 5.1.1p3 Crash on application quit, if AkAmbient Comp w/ OnTriggerDisable is on GameObject

0 votes

Hey, I recently grabbed the 2015.1 build to work around another issue, and get this crash on application quit.  I can repro it on a new unity scene with a GameObject with a trigger, an AkGameObj, and an AkAmbient component with the Trigger On: set to AkTriggerDisable

Callstack:

00007FFC40A72A8A (AkSoundEngine) CSharp_AK_LE_NATIVE_BITSPERSAMPLE_get
00007FFC40A5D9EB (AkSoundEngine) AK::SoundEngine::RegisterGameObj
  ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FFC40A5256B)
00007FFC40A5256B (AkSoundEngine) 
000000001BF284C2 (Mono JIT Code) (wrapper managed-to-native) AkSoundEnginePINVOKE:CSharp_RegisterGameObjInternal_WithName_WithMask (int,string,uint)
000000001BF28324 (Mono JIT Code) [C:\perforce\Wattam\Branches\Development\Unity5\Assets\Wwise\Deployment\API\Generated\Windows\AkSoundEngine_Windows.cs:3959] AkSoundEngine:RegisterGameObjInternal_WithName_WithMask (int,string,uint) 
000000001BF2827E (Mono JIT Code) [C:\perforce\Wattam\Branches\Development\Unity5\Assets\Wwise\Deployment\API\Generated\Windows\AkSoundEngine_Windows.cs:66] AkSoundEngine:RegisterGameObj (UnityEngine.GameObject,string,uint) 
000000006C9D3EFB (Mono JIT Code) [C:\perforce\Wattam\Branches\Development\Unity5\Assets\Wwise\Deployment\API\Handwritten\AkAutoObject.cs:9] AkAutoObject:.ctor (UnityEngine.GameObject) 
000000006C9AB812 (Mono JIT Code) [C:\perforce\Wattam\Branches\Development\Unity5\Assets\Wwise\Deployment\API\Generated\Windows\AkSoundEngine_Windows.cs:673] AkSoundEngine:PostEvent (uint,UnityEngine.GameObject) 
000000006C9AB5A4 (Mono JIT Code) [C:\perforce\Wattam\Branches\Development\Unity5\Assets\Wwise\Deployment\Components\AkEvent.cs:89] AkEvent:HandleEvent (UnityEngine.GameObject) 
000000006C9AAF17 (Mono JIT Code) [C:\perforce\Wattam\Branches\Development\Unity5\Assets\Wwise\Deployment\Components\AkAmbient.cs:126] AkAmbient:HandleEvent (UnityEngine.GameObject) 
000000006C9D3DF1 (Mono JIT Code) [C:\perforce\Wattam\Branches\Development\Unity5\Assets\Wwise\Deployment\Components\AkTriggerDisable.cs:16] AkTriggerDisable:OnDisable () 
0000000011D26B52 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
00007FFC43C24053 (mono) [c:\buildslave\mono-runtime-and-classlibs\build\mono\mini\mini.c:4914] mono_jit_runtime_invoke 
00007FFC43B78389 (mono) [c:\buildslave\mono-runtime-and-classlibs\build\mono\metadata\object.c:2623] mono_runtime_invoke 
00000001403995FF (Unity) scripting_method_invoke
0000000140558DF2 (Unity) ScriptingInvocation::Invoke
00000001405593D1 (Unity) ScriptingInvocationNoArgs::InvokeChecked
0000000140373BEF (Unity) MonoBehaviour::CallMethodInactive
00000001403793E6 (Unity) MonoBehaviour::RemoveFromManager
0000000140339867 (Unity) Behaviour::Deactivate
0000000140139272 (Unity) Unity::GameObject::ActivateAwakeRecursivelyInternal
00000001401390EA (Unity) Unity::GameObject::ActivateAwakeRecursivelyInternal
00000001401390EA (Unity) Unity::GameObject::ActivateAwakeRecursivelyInternal
000000014013935F (Unity) Unity::GameObject::ActivateAwakeRecursively
0000000140139656 (Unity) Unity::GameObject::Deactivate
000000014046EB63 (Unity) DestroyGameObjectHierarchy
00000001404733BC (Unity) DestroyObjectHighLevel
00000001404EEB46 (Unity) DestroyWorldObjects
0000000140D282EE (Unity) Application::LoadSceneInternal
0000000140D2A6D3 (Unity) Application::ExitPlayMode
0000000140D2ACDA (Unity) Application::SetIsPlaying
0000000140D31155 (Unity) Application::TickTimer
0000000140E43944 (Unity) RelaunchUnity
0000000140E44F3B (Unity) WinMain
00000001414D68B0 (Unity) strerror_s
00007FFC6E0A13D2 (KERNEL32) BaseThreadInitThunk
00007FFC70905444 (ntdll) RtlUserThreadStart

 

Repro steps.

1. Create the scene above.

2. Start the player.

3. Stop the player.

I noticed that this code was added to the 2015.1 version that seems to be the culprit.

else
{
    //Object not active. AkGameObj will not work.  Use a temporary game object.  
    //This will automatically unregister at the end of this scope.
    tempObj = new AkAutoObject(in_gameObjectID);
    tempin_gameObjectID = (uint)tempObj.m_id;    //Silence warning
}

Is there a way to work around this while maintaining the OnTriggerDisableFunctionality, or should I create my own script to work around it?

Thanks!

 

asked Jul 30, 2015 in General Discussion by Marc F. (140 points)

1 Answer

0 votes
 
Best answer
Fixed in the upcoming 2015.1.1
answered Aug 3, 2015 by Mathieu J. (Audiokinetic) (7,120 points)
selected Aug 5, 2015 by Fabien B. (Audiokinetic)
...