HTC vive 手柄转动阀门功能
2018-01-25 17:22
716 查看
HTC vive设备结合unity开发手柄转动阀门功能
现在需求是:使用手柄握住一个阀门,进行旋转。
如下图:
所有的交互都是要在两个互动的物体之间做文章,VIVE里也是一样,所有要在手柄和阀门两个方面进行“加工”。
先看手柄需要做哪些“加工”
程序现在都在走“短小快”的路线。所以插件VRTK肯定是很好的选择。
在手柄上加上VRTK里的交互必要的脚本,这些脚本插件里都有,如下图(蓝色箭头标记为必须加的脚本)。
在本案例中我使用的是Grab的方式进行转动阀的,所以添加的是VRTK_Interact Grab的脚本。也可以根据需求自己修改。修改方法为在Events脚本里有各种触发方式的进行对应按键的选择。如下图:
有了这些脚本手柄的交互功能就已经具备了。只剩下被触碰的物体了。
接受触碰的物体需要进行的准备:
因为需要交互所以collider是必不可少的,还有rigidbody,记住不要勾选重力选项。因为这个要配合下面的VRTK_Knob脚本使用。Device_Value是我自己写的传值脚本,此处只讲转动方法不需要添加该脚本。如下图:
上图中的Clickpress脚本继承了VRTK_InteractableObject脚本,这个脚本也是VRTK插件里的。如果只是单纯实现本案例的转动功能完全可以使用VRTK_InteractableObject脚本。此处要注意转动的原理是采用unity里的铰链的方法,所以在该脚本里有一次选择抓取机制方法的地方要选择Spring_Joint的方法。同样既然是要抓取那肯定要勾选抓取的选项 ,如下图:
如果要添加其他功能,需要继承该脚本重写某些方法。下面的代码是最常用 的几个方法也是我的脚本Clickpress里用的方法:
VRTK_Knob脚本是一个用来转动跟随的脚本。
既然转动那可得要选择转动的物体和轴向,如图:
DIrection就是要转动的轴向,下面的两个参数是转动最大小的限度,step size是转动数值的精确度。
根据需求本案例选择Y轴,如图:
GO物体就是要被旋转的物体,使用时直接拖动过来就可以。这个GO物体原本脚本是没有的,我把原本的脚本稍稍做了加工。
代码如下:
[C#] 纯文本查看 复制代码?
这样手柄和被接触物体需要的东西都满足了就实现了该功能。
现在需求是:使用手柄握住一个阀门,进行旋转。
如下图:
所有的交互都是要在两个互动的物体之间做文章,VIVE里也是一样,所有要在手柄和阀门两个方面进行“加工”。
先看手柄需要做哪些“加工”
程序现在都在走“短小快”的路线。所以插件VRTK肯定是很好的选择。
在手柄上加上VRTK里的交互必要的脚本,这些脚本插件里都有,如下图(蓝色箭头标记为必须加的脚本)。
在本案例中我使用的是Grab的方式进行转动阀的,所以添加的是VRTK_Interact Grab的脚本。也可以根据需求自己修改。修改方法为在Events脚本里有各种触发方式的进行对应按键的选择。如下图:
有了这些脚本手柄的交互功能就已经具备了。只剩下被触碰的物体了。
接受触碰的物体需要进行的准备:
因为需要交互所以collider是必不可少的,还有rigidbody,记住不要勾选重力选项。因为这个要配合下面的VRTK_Knob脚本使用。Device_Value是我自己写的传值脚本,此处只讲转动方法不需要添加该脚本。如下图:
上图中的Clickpress脚本继承了VRTK_InteractableObject脚本,这个脚本也是VRTK插件里的。如果只是单纯实现本案例的转动功能完全可以使用VRTK_InteractableObject脚本。此处要注意转动的原理是采用unity里的铰链的方法,所以在该脚本里有一次选择抓取机制方法的地方要选择Spring_Joint的方法。同样既然是要抓取那肯定要勾选抓取的选项 ,如下图:
如果要添加其他功能,需要继承该脚本重写某些方法。下面的代码是最常用 的几个方法也是我的脚本Clickpress里用的方法:
VRTK_Knob脚本是一个用来转动跟随的脚本。
既然转动那可得要选择转动的物体和轴向,如图:
DIrection就是要转动的轴向,下面的两个参数是转动最大小的限度,step size是转动数值的精确度。
根据需求本案例选择Y轴,如图:
GO物体就是要被旋转的物体,使用时直接拖动过来就可以。这个GO物体原本脚本是没有的,我把原本的脚本稍稍做了加工。
代码如下:
[C#] 纯文本查看 复制代码?
相关文章推荐
- HTC Vive 手柄发射射线功能
- HTC Vive 实现使用手柄上下拖动 旋转物体的功能
- Unity的HTC VIVE SDK研究(手柄按键功能的研究,比较详细)
- HTC Vive开发笔记之手柄震动
- HTC vive开发:关于手柄按键
- Android初级,MediaPlayer播放音乐,进度条滑动及唱片转动功能实现
- unity中检测不到HTC vive手柄的解决方案
- 三星i9250 USB HOST功能连接键鼠/手柄详解
- HTC Vive手柄圆盘控制角色移动
- Unity HTC VIVE 手柄 接入(手柄上的按键都有说明)
- 虚幻引擎四 调用HTC Vive 手柄震动问题 ||UE4 调用手柄震动问题
- 转载一篇用htc vive手柄旋转物体的代码
- Unity +HTC VIVE 虚拟现实开发— 手柄控制
- 【UE4】 第11讲 【MOBA制作日记】 HTC Vive设备安装使用及手柄控制漫游
- Andriod学习笔记:仿美图秀秀首页手柄下拉功能实现(二)
- 根据Steamvr sdk中拓展代码,构造Htc vive 手柄按钮事件结构
- HTC VIVE手柄输入函数大全
- Unity HTC VIVE 手柄 接入(手柄上的按键都有说明)
- Chrome浏览器增加游戏功能 明年将原生支持手柄
- Unity的HTC VIVE SDK研究(手柄按键功能的研究,比较详细)