与 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 中调用成员函数。