问题标签 [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.

0 投票
1 回答
143 浏览

unity3d - 有什么办法可以在 Unity 中使用 SteamVR 摆脱屏幕镜像?

我正在使用 MRTK 和 Unity 开发一个 VR 应用程序。我最初尝试使用 UWP,但它的局限性很大(微软,请做点什么!)并决定使用 Steam。

当我在 Unity 之外编译和运行应用程序时,一切正常,除了我的桌面上有一个镜像窗口显示 VR 中运行的内容。我觉得它真的很烦人而且没用,但找不到如何摆脱它。它是 Steam 本身、Unity 中的设置,还是由编译设置控制的?如果有人能指出我正确的方向,将不胜感激。

谢谢你的帮助!

0 投票
1 回答
1526 浏览

c# - 在 SteamVR 控制器上获取菜单按钮输入

嗨2,

有谁知道如何通过 Unity 中的 C# 代码获取 steamVR 控制器上 的菜单按钮输入?
目前,我能够从触发器、触控板和手柄按钮获取输入。

在此处输入图像描述

任何帮助表示赞赏。^_^

0 投票
2 回答
1132 浏览

c# - 对象未触发对撞机

嗨,我的问题是在 Unity 中,我是 c# 的初学者,我的游戏对象没有触发在游戏平面上设置的对撞机,以便重置它的位置。

该脚本附加到平面上,并且游戏对象被标记为篮球,当它进入地板的对撞机时,它应该将其位置转换为原始位置。

我看不出有什么问题,我可以得到一些帮助吗?

PS 当其他游戏对象也通过对撞机时,我会收到此错误。

NullReferenceException:对象引用未设置为对象的实例

0 投票
1 回答
89 浏览

c# - 使用 Vive (SteamVR) 从串行端口读取导致巨大延迟

我正在使用最新的SteamVR 插件 (V 2.3.0)在 HTC Vive 中开发叉车模拟。我想在 sim中添加一个定制的方向盘,它根据它的旋转给出值。我已经使用 Vive 控制器和键盘实现了模拟控制。但是自从我添加串行连接读取代码的那一刻起,模拟就开始滞后了。15-20 fps 是我从串口读取得到的。

我必须以这种方式读取串行端口数据,因为当我尝试使用 SerialPort.DataReceived事件执行此操作时,会出现超时异常。使用上面的 Coroutine ReadData() 我可以获取 COMM 端口数据,但不能使用 DataRecieved 事件。这是使用事件读取缓冲区的代码-

上面的 Port_DataReceived() 导致超时异常,并且控件永远不会到达Debug.Log("Steering port: " + datareceived);这一点,因为它没有被记录。

这是因为我在 vive 上使用串行端口吗?有谁知道我该如何解决这个问题?

更新:实际上我也尝试过使用线程,但它也导致超时异常。这是线程函数的代码,这里的控件也没有到达 Debug.Log(steering) 行,并且存在超时异常。

0 投票
1 回答
77 浏览

unity3d - Unity3D SteamVR 教程 Vive Pro 源代码

我想在 Unity 上为 Vive Pro 编写应用程序,它与具有球机器人角色的 steamvr 教程的应用程序非常相似。我在哪里可以得到这个源代码?

0 投票
1 回答
350 浏览

c# - VR CameraRig 旋转,抛出物体的问题

我正在使用 SteamVR 在 Unity 中创建一个 VR 应用程序。我已经实现了一个 Snap Rotation Script,因此,用户可以在游戏中转身,而无需进行实际操作。

我的层次结构是:[CameraRig] -> (Controller left, Controller right, camera)

现在的问题是:当我拿着一个物体并想扔它时,如果我之前旋转了 CameraRig,那么扔的物体就会表现得很奇怪。它的方向是异相的,基于 CameraRig 的累积旋转。如果我从不旋转 CameraRig,则抛出的对象表现正常

我正在使用 FixedJoint 组件将对象附加到手上。

我怎样才能解决这个问题?

0 投票
2 回答
284 浏览

unity3d - 确定哪个控制器在 SteamVR 中向我发送动作

我开始使用 SteamVR 动作驱动输入系统版本:2.3.2 (sdk 1.4.18)。我为每个控制器附加了一个类似于 Steam 版本的激光指示器脚本。现在,当我按下触发器时,两个脚本都会收到挤压动作。嗯,他们当然会。那么如何确定挤压是否来自我的控制器,以确保我只对此做出响应?

我已经看过SteamVR_Input_Sources参数了。它总是显示“任何”,所以这无济于事。

也许有一个选项可以过滤您希望接收的控制器消息或确定谁调用了该操作的方法......?

0 投票
1 回答
138 浏览

c# - 如何将对象的 X 旋转设置为与 VR 控制器的 X 旋转相同

我有一个对象,它的 x 旋转与 vr 的控制器相同。

但我需要将它旋转 90 度,以使对象垂直而不是水平。

但这不能正常工作,因为您只能沿一个方向旋转对象。

如果您向右旋转控制器-> 对象向右旋转,如果向左旋转控制器-> 对象向右旋转。如果要向左旋转对象,则必须将控制器倒置。

我还尝试将对象设置为控制器的子对象,但在播放对象时消失

我该如何解决?

提前致谢。

0 投票
0 回答
423 浏览

unity3d - 可交互脚本允许“手跟随变换”,默认为附加对象的变换,忽略偏移

我们正在构建一个 3D VR 台球,我们正在努力使用 Cue-Stick。

我们尽可能多地使用 steamVR Interactable 脚本。

我把球杆附在手上

偏移量 (Pivot.transform在这里很重要,因为我们希望在正确的位置附加到对象(这在运行时确定,取决于用户在抓取时将手放在哪里)。因为 Cue 杆是使用速度而不是通过父项移动的,抓取位置并不总是在摇杆上(摇杆有阻力、碰撞等)。这是非常沉浸式的破坏。为了弥补这个问题,Intractable 脚本有一个布尔值Hand Follow Transform,可以完美解决这个问题。遗憾的是现在的手跳转到 Cue 的中点(原点),即使我们在完全不同的地方抓取它。它仍然表现得像它应该的那样,但在视觉上它非常混乱。

SteamVR Intractable 支持附加时的偏移,但在定位手时会忘记该偏移。

有什么我想念的吗?或者这不是一回事?

我多次阅读脚本代码,它看起来像偏移在放置手的范围内不可用。因此,这不可能起作用。

我怎么解决这个问题?

我试着退回到只是养育手,但这使得 Cue 和球之间的物理交互变得时髦。我还通读了大部分脚本以了解发生InteractableHand什么,除了阀门命名约定对我有点伤害之外,我没有成功找到方法。不过,我对此感到不知所措,而且我很可能会错过一些东西。

不过,可能有可能的是,将 Hand 附着点设置到 Cue 上的正确位置,但是这个变换被放置在RightHand(和左边)预制件中,每帧更改这个变换或父子关系似乎是一个非常糟糕的主意它到 Cue 游戏对象。

有没有更好的办法?

0 投票
1 回答
57 浏览

unity3d - SteamVR 2.2 能否用于在 Unity3D 中为 Oculus Quest 开发应用程序?

我正在为 Oculus Quest 开发应用程序,但想使用 SteamVR 2.2 输入系统而不是 Oculus OVR。更具体地说,我想使用 SteamVR 手和 SteamVR_Skeleton_Poser。

我尝试只使用交互示例示例场景,但我的手在整个地方都在闪烁!如果我将 renderModelprefab 切换到“Hand”组件上的手动预制件,它会停止闪烁,但随后我会收到没有 renderModel 类的错误。

当我构建和运行示例时,我的 Quest 也只显示一个空白屏幕!?

有没有办法让 SteamVR 为 Oculus Quest 工作?