【问题标题】:Cannot access play area from VRChaperone无法从 VRChaperone 访问游戏区
【发布时间】:2018-07-23 20:27:23
【问题描述】:

我正在使用 openVR 框架编写一些 C++ 代码。我可以成功地从控制器中提取位置数据,但我需要游戏区域的宽度和深度,以便将位置数据缩放到我的屏幕。

我试过了

vr::VRChaperone()->GetCalibrationState(); 
vr::VRChaperoneSetup()->RevertWorkingCopy();    
float *posX = 0;    
float *posZ = 0;    
vr::VRChaperoneSetup()->GetWorkingPlayAreaSize(posX, posZ);     
dprintf("PosX:%f PosZ:%f\n", posX, posZ);

但它一直说 posX 和 posZ 都是 0。有什么想法吗?

【问题讨论】:

  • 什么代码为你的两个指针分配存储空间?

标签: c++ htc-vive openvr


【解决方案1】:

在快速浏览了 github 之后,函数返回一个 bool,所以首先尝试检查它是否确实有效,然后您实际上并没有打印浮点数的值,而是打印地址,因为它们是指针。
将 print 语句更改为 dprintf("PosX:%f PosZ:%f\n", *posX, *posZ);,这样您就可以取消引用指针并获取它们的值。
我也不知道 openvr 是如何工作的,但是在查看了 stark 的评论之后,您可能想要做的是
float posX, posZ;
vr::VRChaperoneSetup()->GetWorkingPlayAreaSize(&posX, &posZ);
这样您就可以为函数提供变量的地址,以便它可以编辑它们,然后您可以按照您的方式使用 printf
dprintf("PosX:%f PosZ:%f\n", posX, posZ);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 2021-07-25
    • 1970-01-01
    • 2014-02-01
    • 2017-01-29
    相关资源
    最近更新 更多