AudiokineticのコミュニティQ&AはWwiseやStrataのコミュニティ内でユーザ同士が質問・回答をし合うことができるフォーラムです。Audiokineticテクニカルサポートチームからの回答をご希望の場合は、必ず サポートチケットページ をご利用ください。

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

0 支持

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!

 

Marc F. (140 ポイント) 2015 7/30 質問 General Discussion

回答 1

0 支持
 
ベストアンサー
Fixed in the upcoming 2015.1.1
Mathieu J. (Audiokinetic) (7,120 ポイント) 2015 8/3 回答
Fabien B. (Audiokinetic) 2015 8/5 選択
...