(个人)太极拳学习系统创新实训第八周(二)

本周任务:

完成输出成绩,将二维界面转为三维界面并实现用户通过动作控制射线交互。

我已经完成了输出成绩和将二维界面转换为三维界面,下面我将介绍如何实现用户通过动作控制射线交互。

制作过程:

在二维界面中的界面可以通过鼠标左键的点击实现,鼠标点击可以分解成两部分。

第一部分,鼠标光标移动到目标位置。

第二部分,用户按下左键触发。

在VR状态下,界面是三维界面不能通过鼠标交互。为了解决这个问题我选择使用自定义动作代替左键触发,这个解决方法是基于用户在学习过程中一直穿带诺亦腾设备,通过诺亦腾设备可以捕捉到用户的动作,当识别到用户有右手接触头部的动作就代表用户按下左键。用户可以触发,但是没有光标确定目标位置并不能正常交互。因此我们使用射线来确定用户想要触发的事件。

比较右手和头是否有接触,如果有则认为有按下按键事件,将按键事件设为鼠标左键。然后用WidgetInteraction来确定目标。

判断右手是否和头有接触:



从组件和视图可知,stu_RH为右手,stu_Haed为头。

判断是否有头部和右手的靠近的动作。

如果有,则触发鼠标左键按下。

到现在我已经完成通过用户自身的肢体动作代替鼠标左键触发。但是缺少代替鼠标光标移动到目标位置。

这里我通过射线代替光标锁定要点击的对象。

因为我们使用vive的头盔,我想从头部发射射线,因此我将widgetInteraction放在摄像机下面。

为了能够接触到界面,我将射线长度调为1000

为了射线能够显示,将Show Debug设为true

为了使用户可以清晰的看到射线当前悬浮在那个按钮上,我将所有ui的按钮Hover和Press的按钮背景改为与normal模式下不同的背景。

猜你喜欢

转载自blog.csdn.net/qq_34705228/article/details/80472051