커뮤니티 Q&A

Audiokinetic의 커뮤니티 Q&A 포럼에 오신 것을 환영합니다. 이 포럼은 Wwise와 Strata 사용자들이 서로 도움을 주는 곳입니다. Audiokinetic의 직접적인 도움을 얻으려면 지원 티켓 페이지를 사용하세요. 버그를 보고하려면 Audiokinetic 런처에서 Bug Report 옵션을 사용하세요. (Q&A 포럼에 제출된 버그 보고는 거절됩니다. 전용 Bug Report 시스템을 사용하면 보고 내용이 담당자에게 정확히 전달되어 문제 해결 가능성이 크게 높아집니다.)<segment 6493>

빠르고 정확한 답변을 얻으려면 질문을 올릴 때 다음 팁을 참고하세요.

  • 구체적인 내용을 적어주세요: 무엇을 하려는지, 혹은 어떤 특정 문제에 부딪혔는지 설명하세요.
  • 핵심 정보를 포함하세요: Wwise와 게임 엔진 버전, 운영체제 등 관련 정보를 함께 제공하세요.
  • 시도한 방법들을 알려주세요: 문제 해결을 위해 이미 어떤 단계를 시도해봤는지 설명해주세요.
  • 객관적인 사실에 초점을 맞추세요: 문제의 기술적 사실을 중심으로 설명하세요. 문제에 집중할수록 다른 사람들이 더 빠르게 해결책을 찾을 수 있습니다.

0 투표

Since upgradiing to 2017.1.xxxx we started seeing a number of crashes in the editor (could happen in game too!) on level swap. It wasn't terribly common but I root caused it to the fact that "GetWorld" for a component in UE4 can return null when swapping levels. (I.E. the world can be in-accessible during level swap).

Apologies in advance for the formatting. I don't see support for code blocks here.

The crash would occur in this function, but that's not the best place to fix it:

template<class COMPONENT_TYPE>
void FAkAudioDevice::RemovePrioritizedComponentFromList(COMPONENT_TYPE* in_ComponentToRemove, TMap<UWorld*, COMPONENT_TYPE*>& HighestPriorityComponentMap)

 

The fix is pretty simple. Add this to FAkAudioDevice::Init

// OnWorldCleanupDelegateHandle is a new member variable I declared in FAkAudioDevice
OnWorldCleanupDelegateHandle = FWorldDelegates::OnWorldCleanup.AddLambda(
[&](UWorld* WorldBeingCleanedup, bool, bool)
{
   HighestPriorityLateReverbComponentMap.Remove(WorldBeingCleanedup);
   HighestPriorityRoomComponentMap.Remove(WorldBeingCleanedup);
}
);

and add this line to tear down

FWorldDelegates::OnWorldCleanup.Remove(OnWorldCleanupDelegateHandle); 

Feature Requests Brent R. (100 포인트) 로 부터

Please sign-in or register to answer this question.

...