社区问答

欢迎来到 Audiokinetic 社区问答论坛。在此,Wwise 和 Strata 用户可互帮互助。如需我们团队直接提供协助,请前往技术支持申请单页面。若要报告问题,请在 Audiokinetic Launcher 中选择“报告错误”选项(注意,问答论坛并不会接收错误报告)。我们内部设有专门的错误报告系统,会有专人查看报告并设法解决问题。

要想尽快得到满意的解答,请在提问时注意以下几点:

  • 描述尽量具体:比如,想达到什么样的目的,或者具体哪里有问题。
  • 包含关键细节:比如,Wwise 和游戏引擎版本以及所用操作系统等等。
  • 阐明所做努力:阐明自己为了排除故障都采取了哪些措施。
  • 聚焦问题本身:聚焦于问题本身的相关技术细节,以便别人可以快速找到解决方案。

0 投票
Hi!
I'm using the SetMultiplePositions function, but It's only getting the last position from the array.
That's the code I have

AKRESULT success = AK::SoundEngine::SetMultiplePositions(
            staticObj.getId(), //id of the object within wwise
            staticObj.getPositions().data(), //getPositions() returns an std::vector. this converts std::vector to array
            staticObj.getPositions().size(), //number of positions passed within the array
            AK::SoundEngine::MultiPositionType::MultiPositionType_MultiDirections
            );

Does anyone have this problem too? Am I doing anything wrong?
分类:General Discussion | 用户: M.Bruno R. (300 分)
Did you manage to find a solution for this, we're having a similar issue where the event only plays on the root object. Here's the code, would be great if someone could look at it.

        //River to array
        AkPositionArray arr = new AkPositionArray((uint)river.transform.childCount);
        foreach( Transform child in river.transform) {
            Vector3 pos = child.position;
            Vector3 forw = child.forward;
            Vector3 up = child.up;
            arr.Add(pos, forw, up);
        }
        AkSoundEngine.SetMultiplePositions(river,arr, (ushort)river.transform.childCount, MultiPositionType.MultiPositionType_MultiSources);
        AkSoundEngine.PostEvent("ambient_river", river);
Hi! Honestly, I can't remember. This was year and half ago. I can check the code (I still have it) and see what I did to solve this (if I did).
Do you still need it?
Hi, thanks for the reply. I eventually managed to solve this issue :)
Hi! I just checked and we didn't solve it, we did a workaround. If you can, please, post your solution.
Thank you!

1个回答

+1 投票

I don't know if it still might help, but i've been trying to set the multiposition mode using code as well, and I managed to do it. 
I've checked the code of AkAmbient.cs (Unity) and I noticed that, before setting the multiposition mode for a gameobject, all components of type "AkGameObj" are removed.

AkGameObj[] gameObj = soundpoint.gameObject.GetComponents<AkGameObj>();
for (int i = 0; i < gameObj.Length; i++)
    gameObj[i].enabled = false;

I added this portion of code in my soundmanager, before setting the multiposition mode, and now it works :) 

 

用户: Slimane D. (170 分)
...