0

与 ScriptDragon 合作,尝试使用 OpenVR 将一些 HTC vive 功能放入 Skyrim。

我有什么工作。能够初始化耳机,因为没有错误返回并且指向耳机对象的指针不为空,并且当我进入游戏时,vive灯从红色变为绿色。

在职的

void InitHMD(vr::IVRSystem* hmd)
{
    vr::EVRInitError eError = vr::VRInitError_None;
    hmd = vr::VR_Init(&eError, vr::VRApplication_Other);

    if (eError != vr::VRInitError_None)
    {
        PrintNote("Error: %s", eError);
    }
    else
    {
        PrintNote("HMD succesfully initialized");
    }
    //extra chech for my own sanity
    if (hmd == nullptr)
    {
        PrintNote("NULL POINTER HMD");
    }
    else
    {
        PrintNote("HMD pointer set");
    }

}

运行游戏文字道具显示HMD指针已设置并成功初始化。 完整的源代码在这里。每当按下 home 键时,它都会调用 hmd 成员函数并突然中断。

初始化后不工作

bool temp = hmd->IsInputFocusCapturedByAnotherProcess();

不起作用的是,一旦我尝试访问任何成员函数,它就会使游戏崩溃,让我相信我没有完全初始化耳机或内存分配存在问题。

我有链接器属性,包括设置和它们应该在的所有外部文件。

ScriptDragon 不应该是问题,因为其他人已经对 razer hydra 做了类似的事情,并且在他们的源代码中,能够在 api 中调用成员函数。

4

0 回答 0