使用ScriptDragon尝试使用OpenVR尝试将一些HTC vive功能放入Skyrim。
我的工作。能够初始化Headset,因为没有错误返回,并且指向耳机对象的指针不为空,当我进入游戏时,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指针已设置且已成功初始化。 Full source available here。当按下主页键时,它会调用hmd成员函数并突然中断。
bool temp = hmd->IsInputFocusCapturedByAnotherProcess();
什么行不通的是,当我尝试访问任何成员函数时,它会使游戏崩溃,导致我相信我没有完全初始化耳机或内存分配存在问题。
我有链接器属性,包括设置和所有外部文件。
ScriptDragon应该不是问题,因为其他人已经使用razer hydra做了类似的事情,并且在他们的源代码中,能够调用api中的成员函数。