本文为 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
组件,用于设置变换的位置和旋转。
在这些对象下,您将看到名为Model
的 GameObjects,其中包含我们的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 视图中显示的完全相同。
2.3 Notes(注意)
SteamVR_RenderModel 组件需要与设置其索引的对象位于同一游戏对象上。 在[CameraRig]
预制件中,这是由SteamVR_Behaviour_Pose
脚本完成的。