使用 Gear VR 头戴显示器触控板

设置 Gear VR 头戴显示器触控板

Choose your operating system:

Windows

macOS

Linux

前置主题

为了理解并使用本文中的内容,请确保您已掌握以下主题:

HTTouchPad.png

Gear VR 头戴显示器侧面有触控板,以便用户与当前查看的 VR 项目进行互动。用户在触控板上点按或滑动手指即可与 VR 项目形成互动。以下指南将讲述如何对 Gear VR 头戴显示器触控板进行设置,使其基于不同的触控板输入显示不同文本。

步骤

以下说明将讲述如何设置玩家 Pawn,以便显示 Gear VR 触控板上执行的操作类型。

  1. 首先打开玩家 Pawn 蓝图,然后从 Components 标签中添加一个新的 TextRender 组件,设为 VRCamera 的子项并对其进行以下设置,以便我们在之后查看具体执行的操作类型。

    点击查看全图。

    属性名

    默认值

    Location

    X:100 Y:0 Z:0

    Rotation

    X:100 Y:0 Z:180

    Text

    TEMP TEMP TEMP

    Horizontal Alignment

    Center

    Vertical Alignment

    Text Center

  2. 确定输入是点按或滑动需要追踪首次触摸和最后触摸之间的距离。如果这两点之间的距离小于一定的量,则判定为点按。如果这两点之间的距离大于一定的量,则判定为滑动。完成此操作的方法是在 Variables 部分中创建两个以下命名的 Vector 2D 变量。

    HTTouchPad_Var_Setup.png

    • TouchStart

    • TouchEnd

  3. 最后,我们需要添加 5 Text 变量,用于显示点按或滑动是否发生,以及滑动的方向。将以下 Text 变量添加到 GearVR_Pawn 蓝图,命名和值按如下设置。

    HTTouchPad_Var_TouchSwipe.png

    节点名

    默认值

    TouchTap

    TouchTap

    SwipeLeft

    SwipeLeft

    SwipeRight

    SwipeRight

    SwipeUp

    SwipeUp

    SwipeDown

    SwipeDown

必需的全部组件和变量添加到 Pawn 后,下一部分我们将了解如何检测点按和滑动的发生。

触摸与滑动输入设置

以下部分讲述如何在 GearVR_Pawn 蓝图中设置初始逻辑,以确定用户是否对触控板进行了点按或滑动。

  1. 首先右键点击 蓝图事件图表 ,搜索以下蓝图节点,并根据它们所在的位置将添加到事件图表:

    点击查看全图。

    节点名

    默认值

    Touch

    N/A

    Set Touch Start

    N/A

    Set Touch End

    N/A

    Get Player Controller

    N/A

    Get Input Touch State

    N/A

    Make Vector 2D

    N/A

  2. 接下来需要记录并保存首次和最后触摸的位置,我们将用这两者之间的距离来判定点按和滑动。完成此操作的方法是:首先将 Get Player Controller 节点连接到 Get Input Touch Start ,以便在用户首次触摸时便开始追踪。为使操作更加便捷,将 Location X Y 连接到 Make Vector 2D 节点,然后将 Make Vector 2D 节点输出连接到 Touch Start Touch End 变量上的输入,便于保存触摸的开始点和结束点。最后将 Input Touch Pressed 连接到 Touch Start 变量,然后将 Input Touch Released 连接到 Touch End 变量。这部分完成后,蓝图应与下图相似。

    点击查看全图。

  3. 现在 Touch Start 和 Touch End 变量能够填入数据,接下来我们将设置逻辑,确定点按和滑动。首先将以下节点添加到事件图表:

    点击查看全图。

    节点名

    默认值

    Touch Start

    N/A

    Touch End

    N/A

    Vector2d - Vector2d

    N/A

    Vector 2d Length

    N/A

    Break Vector 2D

    N/A

    Absolute (Float)

    N/A

    float < float

    N/A

    float > float

    N/A

  4. 在确定点按或滑动发生之前,首先需要将 Touch Start 和 Touch End 变量相减,得出两者之间的距离。在蓝图中实现此操作的方法是将 Touch Start 和 Touch End 变量连接到 Vector2d - Vector2d 节点上的输入。

    点击查看全图。

  5. 测量 Touch Start 和 Touch End 变量的长度或大小即可判定点按和滑动。如两个变量之间的长度低于 X,则判定为点按。如长度大于 X,则判定为滑动。在蓝图中进行设置的方法是将 Vector2d - Vector2d 节点的输出连接到 Vector 2d Length 节点上的输入。然后将 Vector 2d Length 的 Return Value 连接到 float > float 上的首个输入,并将 float > float 上的第二个输入的值设为 20 ,定义点按和滑动的判定距离。

    点击查看全图。

    修改 float > float 节点上第二个输入的数值即可增加或减少这个判定距离。

  6. 判定向左滑动和向右滑动需要确定 Touch Start 和 Touch End 之间距离的 X 轴值是否大于零。如距离大于零,则判定为向左滑动;如距离小于零,则判定为向右滑动。进行此设置的第一步是将 Vector2d - Vector2d 节点的输出连接到 Break Vector 2D 节点的输入。然后将 Break Vector 2D 节点的 X 输出连接到 float < float 节点上的第一个输入,然后将第二个输入的值保留为零。

    点击查看全图。

  7. 判定向上滑动和向下滑动需要确定 Touch Start 和 Touch End 之间距离的 Y 轴值是否大于 1。如 Y 轴值大于 1,则判定为向上滑动。如 Y 轴值小于 1,则判定为向下滑动。进行此设置的方法是将 Break Vector 2D 节点的 Y 输出连接到 float > float 节点上的第一个输入,然后将 float > float 节点上第二个输入的值设为 1。

    点击查看全图。

设置好判定点按或滑动的蓝图逻辑后,下一部分将讲述如何使用此逻辑显示文本,告知用户点按和滑动的发生以及开始滑动的方向。

在点按和滑动间进行确定

下一部分中我们将设置蓝图检测点按和滑动之间的差别,并显示文本,说明发生的行为类型。

  1. 首先需要将一个 Branch 节点添加到事件图表,并将 Set Touch End 的输出连接到 Branch 节点的输入,确定用户执行的是点按还是滑动。然后将 float > 20 节点的返回值连接到 Branch 节点的 Condition 输入。完成后,此逻辑将检查 Touch Start 和 Touch End 之间的距离,如距离小于 20 个虚幻单位(UU),则判定为点按。如距离大于 20 UU,则判定为滑动。

    点击查看全图。

  2. 了解点按和滑动之间的差别后,接下来我们需要滑动的方向,进而实现不同的操作。首先复制 Absolute(Float) 节点和其中一个 float > float 节点,将它们按下图所示进行连接。蓝图的该部分将对比 X 轴和 Y 轴的 Absolute 值,确定其相对大小,然后执行不同的操作。举例而言,如果 X 轴和 Y 轴的 Absolute 值大于彼此,则判定为左右滑动。如果 X 轴和 Y 轴的 Absolute 值小于彼此,则判定为上下滑动。

    点击查看全图。

    对比两个矢量的长度时必须固定使用矢量的 Absolute 值,它将移除负量,只对正值进行对比。

  3. 接下来从已有的 Branch 节点的 True 输出连出节点,从 Executable Actions 列表中搜索并添加一个 Branch 节点。然后将 float > float 节点的 Return 值输入新建 Branch 节点上的 Condition。完成设置后,左右滑动时将发射 True 选项,上下滑动时将发射 False 选项。

    点击查看全图。

  4. 为事件图表再添加两个 Branch 节点,将它们的输入连接到上一步中添加的 Branch 节点的 True 和 False 输出。这两个新 Branch 节点将控制向特定方向滑动时所显示的内容。来自 True 输入的 Branch 节点将控制左右滑动的作用。来自 False 输入的 Branch 节点将控制上下滑动的作用。

    点击查看全图。

  5. 最后需要实现左右滑动的区别,将 float < 0 连接到上一步添加的首个 Branch 节点上的 Condition 输入。然后实现上下滑动的区别,将 float < 1 连接到第二个 Branch 节点上的 Condition 输入。

    点击查看全图。

现在蓝图的点按和滑动功能便已设置完成,下一部分将说明如何根据对 Gear VR 触控板进行的各种操作显示不同文本。

通过点按和滑动执行不同操作

能够确定点按和滑动,并能够确认滑动方向后,该部分将讲述 GearVR_Pawn 蓝图的设置,以显示文本来说明输入类型。

  1. 从处理点按和滑动的首个 Branch 节点的 False 输出连出引线,从 Executable Actions 列表中搜索并添加一个 Set Text (TextRender) 节点。

    点击查看全图。

  2. 下一步将 TouchUp Text 变量拖入事件图表,并选择 Get 选项。然后将其连接到 Set Text 节点上的 Value 输入。

    点击查看全图。

  3. 为上下左右四个方向重复之前的操作步骤,完成后的蓝图应与下图类似:

    Copy Node Graph

    点击查看全图。

    点击 Copy Node Graph 选项将提供的文本复制粘贴到蓝图,即可将这个蓝图的最终完成版复制到您自己的蓝图中。

最终结果

编译并保存 GearVR_Pawn 蓝图,将 UE4 项目部署到三星 Galaxy 智能手机上,然后将手机放入 Gear VR 头戴显示器。现在用手指点按或滑动触控板,将显示文本说明进行的操作,如以下视频所示。

如点按或滑动 Gear VR 触控板未显示文本,则须确保文本已输入 Text 变量的 Default Value。

HTTouch_TapOrSwipeDisplayText_03.png

UE4 项目下载

可使用以下链接下载用于创建此例的 UE4 项目。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消