VR开发教程:左手柄发射曲线瞬移,右手柄直线交互

VR开发教程:左手柄发射曲线瞬移,右手柄直线交互

Unity Bishu使用VRTK实现手柄的光线发射和漫游功能

目录导航

通过学习VRTK自带的新案例【002-Pointers StraightPointer】、【003-Pointers BezierPointers】、【004-Locomotio Teleporting】,我了解了前期需要的功能。

【002-Pointers StraightPointer】案例说明

在这个场景中像素游戏素材,触摸触摸板后,会出现一条直线。 按下并释放触摸板后,将选择射线所触摸的对象。 可以看到对象边框的颜色发生了变化,同时,也会打印在unity控制台上。 显示所选对象的名称、手柄与对象之间的距离以及光线尖端在对象上的位置。

【003-BezierPointers指针】案例说明

在这个场景中,触摸触摸板后,手柄会发出一条曲线,按下并释放触摸板即可进行选择。您可以看到场景中存在三个选项图块。 选择左侧的图块将光线更改为线性,然后选择右侧的图块将光线样式更改为自定义样式。 在这个场景中,自定义样式是改变射线顶部与物体接触后的样式变为光晕。 选择中间的图块将样式设置为贝塞尔曲线的默认样式。

【004-机车传送】案例说明

在这个场景中,按下触摸板会发出射线,松开它会传送到指针光标的位置unity圆形射线检测,并将块传送到网格碰撞器包围的石头上。 高度不受限制。 同时,通过脚本对灰色方块进行了限制,使其无法成为传送位置。

您可以自行体验和学习。

为了方便后期交互音乐音效,个人养成习惯:左手柄发起曲线瞬移,右手柄发起直线交互。 之前我已经搭建好了VR开发的基础环境。 如果不明白的话可以看我之前的文章。 接下来,我将开发并实现射线发射和隐形传态。

1、在【VRTK_Scripts】下添加一个空物体unity圆形射线检测,命名为【PlayArea】,并在其中添加VRTK组件【VRTK_DashTeleport】(我个人喜欢用这个,传输的脚本很多,自己学习使用):

2、为句柄添加组件 [VRTK_ControllerEvents](监听句柄事件的脚本) [VRTK_StraightPointerRenderer](发出直线的脚本,可以改变光线样式和颜色) [VRTK_Pointer](渲染光线指针)将此对象拖进去,如图以下:

3、同样的方法,在左侧手柄上添加【VRTK_ControllerEvents】【VRTK_BezierPointerRenderer】(这是发射曲线的脚本)【VRTK_Pointer】。

这里,为了让指针和光标点看起来更好看,可以如下图设置:

您还可以学习自己制作自己喜欢的款式。 这样就完成了基本配置。

功能测试

有一个手柄可以发射射线进行漫游。 这里使用的是模拟器。 按住键盘上的[Q]可以发射光线,松开则可以传送:

左手柄发射光线进行漫游:

基本功能已经实现,后续会完善。

文章来源:https://blog.csdn.net/qq_42437783/article/details/115590593