问题标签 [steamvr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Steam VR 场景在 Unity 中重新加载时停止响应
我正在使用 Steam VR 2.0 和 Unity 2018.3.2f1 制作一个场景。我有一个简单的语句来重新加载场景
问题是:当我重新加载场景时,它会停止正确响应。我仍然可以移动我的头,并将鼠标悬停在物体上。我悬停在上面的对象会突出显示,但它们会保持突出显示。我无法接听他们,或以任何有意义的方式与他们互动,我不知道为什么会这样。
我附上了下面问题的截图。
如您所见,多个对象被突出显示,并且手部网格很奇怪:
我尝试过的解决方案——
- 使用 LoadScene 而不是 LoadSceneAsync
- 改用 Application.LoadScene
- 试图编辑 SteamVR 库中的播放器脚本以不将其添加到
Don't Destroy On Load
有什么建议么?
c# - 2.2.0 版的 SteamVR 控制器输入
我目前正在尝试使用 Unity 制作 HTC Vive VR 游戏。我只是想要一些控制器输入来按下扳机开枪。
但我无法正确获取 SteamVR 的输入。在线查找教程时,它们都是旧版本的。
我使用的是 SteamVR 2.2.0 版,我找不到任何关于它的教程。
你们中有人知道如何获得一个简单的触发输入吗?
提前感谢您的帮助!
c# - 如何从 HTC Vive 追踪器接收输入到 Unity?
我正在将 HTC Vive 跟踪器连接到现实生活中的对象以在游戏中使用该对象。跟踪器位于游戏本身中,并且运动和旋转更新得非常好。但是让输入发挥作用是这里的问题。Tracker 的引脚连接正确,并且可以在 SteamVR 输入绑定工具的输入调试器中看到输入正在工作。
我试图在互联网上找到任何帮助,但一切似乎都过时了。控制器本身可以使用我添加的自定义输入功能,但跟踪器拒绝工作。根本没有错误。该代码只是调用了一个射击函数来从枪中射出一颗子弹。输入由控制器接收,两者都是,但与控制器具有完全相同设置的跟踪器似乎不起作用。
使用普通控制器时,当使用在输入绑定工具中设置的触发器时,当前输出确实会射击枪,但是当按下连接到跟踪器的触发器时,没有任何反应,也没有错误。
c# - 用圆形驱动器计算一个完整的旋转
最后一天,我一直在思考如何计算一个完整的旋转,以及如何使用 SteamVR 的基本圆形驱动器计算一个物体沿 X 轴的完整旋转。
我认为一个简单的 3d 立方体,在旋转路径中关闭网格并带有碰撞代码将是一种准系统的方式,但它似乎甚至没有在物体撞击时注册检测放置立方体,我知道这不是因为我很愚蠢,因为它从项目的工作部分回收了代码。
下面我有一小段代码,它基本上检测对象何时到达旋转结束,然后将 Count 加一。
我的主要问题是有时它会多次计时,如果你能找到正确的位置,你可以把它留在那里,它会继续增加计数。我想知道如何停止它并只增加一个,直到完成另一个完整的旋转?
编辑:为了更清楚,以防有任何混淆,一旦角度在 359 和 360 之间,我希望它增加一次,而目前如果你让角度坐在 359-360 之间的任何地方,它将继续尽管没有进行完全旋转,但在旋转计数中加一,所以我试图弄清楚如何让我的代码只增加一次,一旦将位置重置为零,它就会增加一次,因此不会再发生增量. 它是 VR 中沿 X 轴的曲柄机构。
任何帮助表示赞赏,谢谢!
htc-vive - How to manage HTC Vive controllers power programmatically?
Is it possible to power off Vive controller/tracker programmatically?
I see there is an option in SteamVR under each tracked device, but I could not find any references. The only thing I found is polling events of entering and leaving standby mode via OpenVR api.
c# - 用于场景转换的传送
我正在尝试使用 SteamVR Teleport Prefab 在 Unity 3D 中加载新场景。然而,即使我选择了“移动场景”选项,当我传送到那个物体时,它也会消失,实际上并没有将我传送到任何地方。对此有任何更新或修复吗?论文项目需要这个。
我已经看过这个网站上提出的与此类似的问题,但对我来说不是很清楚。此外,这两个场景都在构建设置中
我没有要显示的代码。我只是在检查器中使用了一个下拉选项。
我希望,当我传送到 TeleportPoint 时,我应该被移动到新场景。
c# - 切换场景时管理 Unity3D 的 SteamVR 插件的 Player 对象的最佳方法是什么
我正在使用新版本的 SteamVR 插件 (2.2) 开发应用程序以实现统一,我需要在游戏期间在多个场景之间导航。
我的所有场景都有一个来自 SteamVR 插件处理输入和事件的 Player 对象,它是一个单例 dontDestroyOnLoad,我不知道在场景变化期间处理该对象的最佳方法。
我认为有3个选项:
对于所有场景,都存在一个玩家对象,但 steamVR 不会检查实例是否已经存在,所以我添加了这个功能,以便在场景初始化后只有一个玩家。
另一种解决方案是在加载新场景之前销毁当前实例,但使用 Valve 在此版本中制作的新事件系统,我不知道这是否是管理当时只有一个玩家的事实的好方法,可能会产生事件冲突(还没有看到)。
最后一个但不是很自信的方法是让每个场景有 2 个玩家,其中一个是 singelton 类的好实例(获得好的实例 Player 更烦人,我可以在他们之间发生冲突吗?)
如果有人有一些想法或者可以让我更好地理解我的概念问题,欢迎您:)
git - 如何将 Unity3D 项目中的 SteamVR 资产添加到版本控制?
我有一个使用 SteamVR 的 Unity3D 项目。添加 SteamVR 支持意味着向我的项目添加 70MB 的文件,我不想签入这些文件,因为我认为 70MB 太多了。我确实希望在某处检查参考,因为我正在构建 CI 管道。
对于大型二进制资产,我使用 Git LFS。据我所知,这不适用于整个文件夹,仅适用于文件。
如何以某种方式将此依赖项(固定我的版本)添加到 Git,而不跟踪 70MB 文件的更改?
unity3d - 在没有 SteamVR 的情况下访问 OpenVR 伴侣(游戏区域边界框)
我试图在不依赖 SteamVR 的情况下访问我的 VR 项目的边界框/伴侣。我正在尝试构建一个尽可能原生于 Unity 的框架。
在 SteamVR 中,有人会这样写:
我的问题是如何仅使用 OpenVR 包而不是 SteamVR 插件来做类似的事情。
谢谢
c# - 在 Unity 中将局部旋转应用于 VR 相机
我正在尝试对实验系统的 VR 中的用户视图应用扰动。我想要做的是,无论用户看什么方向,我都想在 x 方向上旋转他/她的视图。不幸的是,在 transform.localEulerAngles 上应用transform.Rotate ()或更改不能直接在 VR 相机对象上工作,我应该使用一个空的父对象并将脚本附加到该对象上。问题在于 x 上的旋转只会旋转父对象并相应地更改 vr 视图,这不是我想要的情况。有人知道解决方案吗?