HTC VIVE丨11. 使用VRTK实现与物体的交互

HTC VIVE 专栏收录该内容
21 篇文章 7 订阅

要点

1、可实现的效果:攀爬、双手持握、缩放物体等

2、VRTK中与物体交互的三种类型:Touch、Grab、Use

Touch:手柄悬停在物体上面,跟物体进行碰撞或接触

Grab:按动某一定义的按键,抓取物体

Use:通过一个事件自定义一个操作

 

VRTK实现与物体的交互方法

一是手动挂载相应脚本,实现物体交互

二是通过VRTK的UI配置窗口,通过在配置窗口点选想要的操作,即可配制出想要的操作

 

方法一:挂载脚本

本章目标

实现抓取剑

 

实现步骤

1、导入资源包

导入含有剑的资源包,并将剑放到合适位置

 

2、给物体添加VRTK_Interactable Object

为要交互的物体添加VRTK_Interactable Object组件,挂载该组件,证明该物体是可以交互的

Disable When Idle:勾选,当它在闲置时,就将该组件关闭,以节约资源

Is Grabbable / Usable:勾选后,该选项下的组件才可使用

Touch Highlight Color:悬停时高亮的颜色

Allowed Touch Controllers:响应哪个手柄的交互。Both / Left_Only / Right_Only

Hold Button To Grab:勾选意味着只有按住某个键,才可实现抓取,当松开时,物体将掉下来;取消勾选时,则是按一下,实现抓取,再按一下,取消抓取

Stay Grabbed On Teleport:勾选,则传送时,仍可抓取着物体;取消勾选,物体将在传送时掉下来

Valid Drop:在什么情况下(取决于Hold Button To Grab),当按下手柄上的Grap键时,物体可以被释放   

    No_Drop:当我们松开或按下抓取键时,不释放

    Drop_Anywhere:释放在任何地方,类似于扔出的效果

    Drop_Valid Snap Drop Zone:将物体释放在Snap Drop区域中,类似于InteractionSystem中的ItemPackage机制,当我们松开抓取按键时,将会把物体放在我们指定的一个区域,如果重合,则该物体会被吸附在该区域

Grab Attach Mechanic Scrip:抓取吸附机制的脚本,类似于上节的Policy List,该脚本不仅实现将被抓取物体成为子物体效果,也可实现其他抓取效果,在VRTK—Scripts—Interactions—GrabAttachMechanics里有相应脚本

Secondary Grab Action Script:二级抓取的控制脚本,该脚本可实现另一只手参与进来的效果,如双手持握,缩放

 

3、给物体添加碰撞体

给物体添加碰撞体,规定一个碰撞的区域

 

4、给手柄挂载VRTK_Interact Grab

挂载该组件后,并自动挂载了VRTK_Interact Touch、、VRTK_ControllerEvents,并且VRTK_Interact Touch源代码自动添加了VRTK_ControllerActions组件

 

4、给手柄添加VRTK_Interact Use

该脚本实现了选中的效果

以上效果展示:

 

5、当抓起剑时,让手柄消失

a、选中剑物体,添加VRTK_Interaction Controller Appearance脚本组件

该组件控制在VRTK的三种交互形式中,控制器的显示和消失

b、勾选在某种状态下,Hide Controller On...,即可实现控制器的显示和消失

Hide Delay On Use:控制器隐藏的延迟时间

 

6、给手柄添加VRTK_Interact Haptics,实现对手柄的反馈

haptics:触感

Strength On ..:力度 0-1

Duration On ..:持续时间

Interval On ..:间隔时间 / 频率

 

方法二:UI配置窗口

选中物体,Windows—VRTK—Setup Interactable Object,此时该选项卡无法拖动往下看,将该选项卡拖至Scene层,作为标签页,即可查看全部内容

Child Of Controller:把它作为控制器的子物体

Climbable:作为可攀登的物体

Custom Joint:作为节点的配置

 

Control Direction:关于方向的控制

Axis Scale:在某个轴向上的缩放

 

Setup selected object:点击后,自动将配置的脚本添加到物体上去,实现类似第一种方法的展示效果

 

Enjoy。

  • 1
    点赞
  • 1
    评论
  • 10
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值