问题标签 [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.
unity3d - 如何使用 SteamVR 开枪?
我正在尝试制作某种射击游戏,并且有一个我要开始的脚本。这是一个创建枪的脚本,我已经可以拿起它并移动它,因为我在对象上附加了一个可投掷的脚本。我也可以发射它(我有一个发射点和一个射弹预制件)。但是,目前,唯一的方法是按下键盘上的按钮。我有一个下拉菜单,我可以选择要开枪的按钮。问题是我正试图把它做成一个 VR 游戏,所以我需要一些方法来使用我的 oculus 触摸控制器来开枪。我想知道是否有办法让控制器上的按钮像键盘上的按钮一样,或者是否有人可以告诉我如何修改我的脚本以便我可以使用 steamVR Actions 系统。
我正在使用带有 oculus 链接、连接到 steamVR 和 Unity 2019.3.1 个人版的 oculus 任务。
我的枪脚本在这里:
感谢您提供任何帮助。
networking - VR 游戏、SteamVR 和 HTC Vive 之间的通信是如何进行的?
我是网络新手,所以我有很多问题,我也梦想使用 rasberry pi 制作开源且更实惠的 VR 耳机和软件,所以现在我很好奇 SteamVR 和 HTC Vive 等流行系统如何工作。我真的无法在网上找到任何文档,所以我决定在这里问。我的问题是虚拟现实耳机如何向 SteamVR 发送数据(跟踪、按钮点击等)以及游戏如何与 SteamVR 通信并获取这些数据?
我不是专家,所以如果你用 python 术语来描述它,我会更容易理解。
unity3d - 我可以使用 RiftCat 玩我的统一 VR 应用吗
我是使用 SteamVR 统一开发 VR 应用程序的新手。我没有能力为我的学习购买昂贵的耳机。那么我可以使用 RiftCat 测试我的统一应用程序吗?
unity3d - 使用 Unity 在 SteamVR 中用手抓取结束后,如何将游戏对象的位置设置为初始位置?
对 VR 来说非常新。我通过抓取从初始位置获取了一个游戏对象。当我抓住头盔并触摸我的身体碰撞器时,它隐藏了头盔。所以接下来我可以选择眼镜并将其应用于我的身体(隐藏游戏对象)。下一步当我戴上不正确的头盔时,第一个头盔应该回到它的初始位置并且应该在场景中看到。同样场景中有很多游戏对象
//另一个设置游戏对象位置的脚本
我不是想将先前抓取的对象设置为初始位置。我可能会先选择错误的头盔,然后选择许多其他匹配的游戏对象,然后再更换为正确的头盔。那时第一个头盔应该回到初始位置。
unity3d - Unity/Mirror 网络无客户端同步
目标:对象可以被玩家交互,并且它的位置和旋转是同步的(局域网)。
场景设置:类似于镜子中的乒乓示例的简单场景,当两个玩家都生成时,会生成一个立方体,两个玩家可以同步交互。
测试立方体 - 在网络管理器中注册为具有网络身份/网络转换的可生成预制件,并在两个玩家加入时生成,并在按下“z”或“x”时移动它的简单旋转脚本,
问题:服务器中所做的任何更改都会反映在客户端中,本地玩家可以控制对象但不与其他客户端同步。 不同步的视频
问题: Networktransform 组件中的 bool- 客户端权限的目的是什么,它应该在具有权限的客户端移动它时自动同步该特定变换还是允许用户通过脚本手动同步?
来自镜像文档 - “默认情况下,网络转换是服务器权威的,除非您选中客户端权限复选框。客户端权限适用于玩家对象以及专门分配给客户端的非玩家对象,但仅适用于此组件.启用此功能后,位置更改将从客户端发送到服务器“。
还尝试通过附加到测试立方体的 SyncPosRot 脚本通过 [Command]/[CientRpc] 更新位置和旋转,
尝试并失败:
- 尝试使用和不使用 SyncPosRot 脚本,
- 在网络转换组件中尝试使用和不使用 bool- 客户端权限,
- 将网络身份/网络转换移动到检查器的顶部和底部,因为这似乎可以解决其他有类似问题的同步问题(不适合我),
以上所有经过多次构建但没有结果,
如果修复很简单,例如从服务器生成对象 - 所有玩家都拥有所有权,任何人都可以指导我吗?
另外,如果有更简单的方法(不一定是更好的方法/最佳实践),请告诉我。
unreal-engine4 - 我可以在 UE4 上为 SteamVR(HTC Vive + Valve Index)和 Oculus Quest (2) 开发跨平台 VR 应用程序吗?
我是 VR 开发的新手,我尝试选择我将学习并用于我的第一个应用程序的引擎。
经过一些研究,我更喜欢 UE4 而不是 Unity,但我不明白我能否创建完整的跨平台应用程序,例如 Vive Index 和 Oculus Quest 2 在独立模式下使用?
据我所知,Unity 给了你这个机会,但是 UE4 呢?
unity3d - 获取 Unity 中被跟踪设备的 SteamVR 设备信息
亲爱的 SteamVR 和 Unity 社区,
我现在已经搜索了很多如何在 Unity 中接收有关被跟踪设备的信息,但似乎没有足够的文档记录或者只是不可能,除了设备类型等一些例外情况。
我正在使用 SteamVR 2.6.1 和 Unity 2019.4.8,我想获取我跟踪的设备的名称,或者如果它是灯塔,我想获取灯塔工作的频道。
例如,是否有机会通过 API 获得 SteamVR 系统报告生成的所有信息?
最好的。
c# - Viveport 上的 SteamVR 缺少控制器绑定(Unity)
我经常收到在 Viveport 上玩我的游戏的用户报告他们的控制器不工作。我相信这是由于缺少控制器绑定。当我在 Viveport 上测试游戏时,它对我来说效果很好。
已为每个控制器导出默认绑定。控制器在 Steam 上运行良好(直接使用 SteamVR),但在 Viveport 上却不行。出于某种原因,Viveport 使用的 SteamVR 看不到默认绑定。
绑定由 Unity 自动生成:Windows / SteamVR Input / Save and Generate。绑定文件位于:\StreamingAssets\SteamVR
统一 2020.1.2f1
SteamVR 测试版 1.15.2
如何使绑定在 Viveport SteamVR 上工作?
应该如何正确导出和保存默认绑定?
动作文件:actions.json
示例绑定文件:bindings_knuckles.json
c# - 将四个 Unity 项目合二为一,处理重复脚本
我最近得到了一个 Unity VR 项目来整理。非常混乱,甚至不在Git上。它由四个 Unity 场景组成,但每个场景都存在于自己的 Unity 项目中。我需要将所有这些都放在一个构建项目中,这就是当前问题所在。这些场景有很多共同的脚本,它们是在项目之间复制粘贴的。其中一些是完全相同的,另一些则有一两行差异。
从我的研究来看,命名空间似乎是最好的前进方式,因此我不必手动调整所有内容。我给基本场景一个独特的命名空间,效果很好。我将第二个场景作为一个包导入,并给它一个不同的命名空间。
现在我得到了一堆与 Valve Corporation 的 VR 脚本有关的编译错误,例如
我不理解这些脚本,也不想(也不应该)弄乱它们。
导致最后一个错误的一个例子是:
然后在脚本中进一步向下(SteamVR_Behaviour_Boolean.cs):
每个 BooleanEvent 都会突出显示。
我是否在命名空间过程中遗漏了某些内容,或者有人知道解决我的问题的更有效方法吗?我已经花了好几天的时间,所以任何建议都将不胜感激。
unity3d - SteamVR:获取由动作触发的输入设备然后获取其对应的手类的正确方法?
我有一个动作映射到我的 VR 控制器上的左手和右手触发器。我想访问这些实例...
...取决于使用哪个触发器,但我无法从 SteamVR API 中找出正确的方法。到目前为止,我得到的最接近的是这个......
...我应该为 SteamVR_Input_Sources.LeftHand 和 SteamVR_Input_Sources.RightHand 执行多个 if 语句吗?这似乎不正确。
我只想获取触发操作的输入设备,然后使用 Player.instance 访问它。