HTC vive pro在unity测试舱室模型漫游中,视角朝向远处屏幕会闪烁,并且会透过模型看到背景

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明


视频材质的shader结构。

借助unity的shader中的Unlit/Texture将ogv格式的视频,绑定到提到的这种shader的材质球上通過脚本控制交互。


Canvas下新建pannel作为视频的播放介质

将绑定了目标视频的材质球绑定到image属性里面。并且为了控制其交互为其添加button组件,当button触發时绑定脚本中的自定义函数。


函数中定义如果视频正在播放时,将其暂停;如果在暂停时恢复播放。

这样就实现了在VR环境中基本嘚视频播放交互功能。

在自定义函数中可以根据需求更改交互方式。以及可以不选用button的交互方式通过其他trigger进行更复杂的交互。

将上图中的prefab拖入场景然后在steam上裝好steamVR,就可以运行了

直接上代码,哪里不懂看注解就好controller在刚才拖进场景的prefab里,如下图

//获取手柄上的这个组件 //以下是api中复制出来的按鍵列表 //这里只有Trigger扳机键写了6种,其他的不再重复 //Trigger的Touch触发条件是扳机键没有按到底,此时不会触发press触发press时必定触发touch。 //拉弓类似操作应该僦是按住trigger(扳机)gettouch时持续调用震动方法模拟弓弦绷紧的感觉 // reserved 为Steam系统保留,用来调出Steam系统菜单 因此自己加的功能没用 下面的打印不会出现 //ApplicationMenu键 帶菜单标志的那个按键(在方向圆盘上面) //Grip键 手柄两侧的按键 每个手柄左右各一且功能相同,同一手柄两个键是一个键 //Axis2键 目前未发现按鍵位置 //Axis3键 目前未发现按键位置 //Axis4键 目前未发现按键位置 //方法返回一个坐标 接触圆盘位置 // 例子:圆盘分成上下左右 //方向圆盘最好配合这个使用 圓盘的.GetAxis()会检测返回一个二位向量,可用角度划分圆盘按键数量 //这个函数输入两个二维向量会返回一个夹角 180 到 -180
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明


视频材质的shader结构。

借助unity的shader中的Unlit/Texture将ogv格式的视频,绑定到提到的这种shader的材质球上通過脚本控制交互。


Canvas下新建pannel作为视频的播放介质

将绑定了目标视频的材质球绑定到image属性里面。并且为了控制其交互为其添加button组件,当button触發时绑定脚本中的自定义函数。


函数中定义如果视频正在播放时,将其暂停;如果在暂停时恢复播放。

这样就实现了在VR环境中基本嘚视频播放交互功能。

在自定义函数中可以根据需求更改交互方式。以及可以不选用button的交互方式通过其他trigger进行更复杂的交互。

我要回帖

更多关于 HTCvive 的文章

 

随机推荐