我有一个名为Numbers的事件。在Fmod Designer中,事件根据listenerAngle播放不同的数字。当我将此事件放置在3D空间中时,我希望能够听到不同的声音。这是我目前的代码。它只播放我的应用中的一个数字。我错过了什么吗?
FMOD_RESULT result = FMOD_OK;
FMOD_VECTOR listenerpos;
FMOD_VECTOR forward = { 0.0f, 0.0f, 1.0f };
FMOD_VECTOR up = { 0.0f, 1.0f, 0.0f };
FMOD_VECTOR vel = { 0.0f, 0.0f, 0.0f };
result = group->getEvent("Numbers", FMOD_EVENT_DEFAULT, &event);
ERRCHECK(result);
listenerpos.x = 0.436243;
listenerpos.y = -0.43643;
listenerpos.z = -6;
result = eventSystem->set3DListenerAttributes(0, &listenerpos, &vel, &forward, &up);
ERRCHECK(result);
非常感谢帮助!谢谢!
答案 0 :(得分:0)
也许您的“数字”事件是2D?你能检查并确保它是3D。
答案 1 :(得分:0)
我添加了一些行并使其正常工作。我不得不把这个活动放在3D世界里。
FMOD_RESULT result = FMOD_OK;
FMOD_VECTOR listenerpos = { 0.0f, 0.0f, 1.0f };
FMOD_VECTOR eventpos = { 0.0f, 0.0f, 1.0f };
float DISTANCEFACTOR = 2.0f;
result = group->getEvent("Numbers", FMOD_EVENT_DEFAULT, &event);
ERRCHECK(result);
listenerpos.x = 0;
listenerpos.y = 0;
listenerpos.z = 0;
result = eventSystem->set3DListenerAttributes(0, &listenerpos,NULL,NULL,NULL);
ERRCHECK(result);
eventpos.x = xPos; // Object's x position on iPhone I move around
eventpos.z = yPos;
result = event->set3DAttributes(&eventpos2,&vel);
ERRCHECK(result);
result = eventSystem->update();
ERRCHECK(result);
result = ballEvent->start();
ERRCHECK(result);