unity3d - 在没有 SteamVR 的情况下访问 OpenVR 伴侣(游戏区域边界框)
问题描述
我试图在不依赖 SteamVR 的情况下访问我的 VR 项目的边界框/伴侣。我正在尝试构建一个尽可能原生于 Unity 的框架。
在 SteamVR 中,有人会这样写:
Valve.VR.OpenVR.Chaperone.ForceBoundsVisible(true);
// or
Valve.VR.OpenVR.Chaperone.ForceBoundsVisible(False);
我的问题是如何仅使用 OpenVR 包而不是 SteamVR 插件来做类似的事情。
谢谢
解决方案
您可以使用OpenVR SDK。
如果您使用的是 C#,则在headers\openvr_api.cs
.
首先,您必须加载库 ( openvr_api.dll
) 并像这样初始化它:
var error = EVRInitError.None;
OpenVR.Init(ref error, EVRApplicationType.VRApplication_Background)
然后用同样的方式简单地使用它
OpenVR.Chaperone.ForceBoundsVisible(true);
您还可以从Steam 文件夹中读取chaperone_info.vrchap
和读取。这些 json 文件包含有关所有 Universe 碰撞边界的信息。steamvr.vrsettings
config
推荐阅读
- opencv - 如何将在图像上绘制的画笔绘图保存为opencv中的填充和单独的二进制掩码?
- google-apps-script - 从命名表中获取 ID
- php - PhpWord 罗马数字表示页码
- javascript - 如何向此 jquery 脚本添加更多 div 类?
- php - 子域路由 laravel 5.4
- php - MySQL:无线电检查插入具有多行的数据库
- reactjs - 我无法弄清楚为什么我的组件没有以更新的状态呈现。即使状态已更新并反映在数据库中
- java - 为什么我得到一个数组越界错误?
- git - 如何使用 git filter-branch 从我的仓库中删除文件?(“您需要从工作树的顶层运行此命令”)
- java - 从不同对象获取值的通用方法,无需通用超类型