SteamVR 插件使用文档(2)

本文为 SteamVR 插件使用文档系列文章的第二篇,主要讲述有关 Render Models(渲染模式)的内容。

文章目录
2 Render Models(渲染模式)
  2.1 The Component(组件)
  2.2 Attaching Objects(附着对象)
  2.3 Notes(注意)


2 Render Models(渲染模式)

由于沉浸在虚拟现实中时您的整个视野都会被覆盖,因此拥有您所握持的控制器的虚拟化显示会很有帮助。SteamVR 插件提供了一种简单的方法,不仅可以获取通用控制器模型,还可以获取具有单独驱动组件的模型。 因此,当我们在现实生活中扣动控制器上的扳机时,我们也可以在虚拟世界(场景)中看到虚拟化的手柄上的按键也在拉动。 这有助于提高可用性并有力地提升真实感。

2.1 The Component(组件)

交互系统和简单示例场景都有使用渲染模型的装备。 在 [Camera Rig] 预制件的 Simple Sample 场景中,您将找到Controller (left)Controller (right)。 这些游戏对象上有一个SteamVR_Behaviour_Pose组件,用于设置变换的位置和旋转。

CameraRig 上的 SteamVR_Behaviour_Pose 组件

在这些对象下,您将看到名为Model的 GameObjects,其中包含我们的SteamVR_RenderModel组件。 它有几个成员:

SteamVR_RenderModel 组件
  • Index 索引:这是控制器的 “跟踪设备索引”。 它是渲染模型系统用来向底层系统标识控制器的整数 id。 在之前的 SteamVR 迭代中,这也用于访问该控制器上的输入,但现在这是通过 “输入系统” 完成的。
  • Model Override 模型覆盖:通常出于测试目的,您可以指定要显示的模型,而不是动态评估连接的设备类型。
  • Shader 着色器:如果您更喜欢使用不同的着色器来渲染模型,您可以在此处指定它。 默认情况下,使用 Unity 的标准着色器。
  • Verbose 详细:将输出调试日志以告诉您脚本发生了什么。
  • Create Components 创建组件:在勾选的情况下为每个组件创建单独的游戏对象。
  • Update Dynamically 动态更新:将移动单个组件与其物理对应物内联。

2.2 Attaching Objects(附着对象)

开发人员通常希望将游戏对象附加到控制器上的特定点,例如抓取物体时,我们希望物体附着在手柄的某个点上。为此,我们在控制器的每个部分下放置了一个名为 “attach” 的游戏对象,该部分以相关部分为中心。 为便于访问,您可以访问SteamVR_RenderModel脚本并调用GetComponentTransform(string componentName),它将返回 \a Transform(不进行任何 GC 分配)。 此处的 componentName 参数区分大小写,因此请确保传入的组件名称与运行时在 Hierarchy 视图中显示的完全相同。

SteamVR_RenderModel.cs

2.3 Notes(注意)

SteamVR_RenderModel 组件需要与设置其索引的对象位于同一游戏对象上。 在[CameraRig]预制件中,这是由SteamVR_Behaviour_Pose脚本完成的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容