커뮤니티 Q&A

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

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

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

0 투표
We find ourselves needing a way of pausing and later resuming all sounds currently playing on an AkComponent so we can silence an object by deactivating it.

I was hoping there was a method in the API for doing this per game object, but it seems there isn't.  AkComponents don't keep a list of playing IDs so we can't pause all the sounds individually.  Even unregistering the game object doesn't stop the sounds (and even if that did work I suspect that they wouldn't start again when we re-registered it).

We could remove the listener, but that wouldn't actually pause the sounds, just mute them.

Have other people had this issue?  How did you deal with it?
General Discussion Sam B (220 포인트) 로 부터

1 답변

0 투표
If I understand you correctly, you need to set the scope in the event from "global" to "game object". This is done in Wwise, not in the engine. It will pause your sfx only on the game object that you post the event on. You can also set pause events for an Actor-Mixer and even busses, which will pause all sounds assigned to it.
Lucas C. (540 포인트) 로 부터
I'm afraid that's not quite what I meant.  I need to pause _all_ playing events on a game object, not a specific one.  And I don't know exactly _what_ events are playing on it, nor the playing IDs (as they are not stored in UAkComponent or anywhere else).

Doing it by mixer or bus isn't an option either, as there will be instances of the same event playing on other game objects that need to stay playing.

We have ExecuteActionOnEvent and ExecuteActionOnPlayingID.  What we need is ExecuteActionOnGameObject.  :)
As mentioned, the intended way is to create an event with event actions for pause/resume: you can use the Pause All and Resume All event actions for that purpose. Make sure the scope is Game Object (it's the default).
...