新增:VRTK丨与物体交互

一、基础配置

1、基础配置地址

2、物体配置:

给要交互的物体挂载 VRTK_InteractableObject、Collider、VRTK_ChildOfControllerGrabAttach

该组件标明该物体可交互、在该组件配置该物体下面的三种交互方式。

新增:VRTK丨与物体交互

3、手柄配置:

1、给右手添加 VRTK_InteractGrab(用于Touch、Grab)。

该脚本自动添加 VRTK_InteractTouch、VRTK_ControllerActions、VRTK_ControllerEvents

2、(可选)右手添加 VRTK_InteractUse

 

 

二、交互方式

1、Touch

效果:手柄触摸触发事件

基础效果,不会像下面Grab、Use一样,可以取消勾选IsUseable来使这些功能不发挥作用。

TouchHighlightColor:触摸时高亮的颜色

AllowTouchControllers:能被左手或右手交互

 

2、Grab

效果:手柄抓取触发事件

1、抓取功能实现

再给物体添加脚本 VRTK_ChildOfControllerGrabAttach,赋值给GrabAttachMechanicScripts属性。意味着抓取时该物体成为手的子物体。

IsGrabbable:勾选,下面配置的属性才会发挥作用。下同

HoldButtonToGrab:

勾选:按下Grab键,抓取起该物体。松开,该物体就掉落

不勾选:按一下,抓起来。再按一下,掉下来。

StayGrabbedOnTeleport:勾选,瞬移过程中仍能拿着该物体。否则,瞬移时该物体会松开。

ValidDrop:拿着物体,当按下手柄上Grap键时,由下面属性控制该物体怎样释放。

Bo_Drop:释放遵从 HoldButtonToGrab

Drop_Anywhere:释放在任何地方,类似扔出效果(得有rigidbdoy)

Drop_ValidSnapDropZone:放到可用的区域里面(当物体与该区域重叠,就释放在那)

GrabAttachMechanicScripts:抓取机制,作为抓取手柄子物体、实现攀爬效果等。后面文章讲解。

SecondaryGrabActionScripts:另一个手柄的抓取机制。可跟上面属性配合,可实现更丰富抓取效果。如双手持放、拖拉缩放等。

2、物体抓取位置和抓取方向设置

VRTK_ChildOfControllerGrabAttach脚本设置该属性:

PrecisionGrab:是否采用精确抓取。不勾选,抓取时该物体坐标与手柄坐标相同,吸附效果。勾选,在什么地方抓取,就在什么地方拿起来。

RightSnapHandle:实现抓取位置、方向设置(需取消上精确抓取属性)。在该物体下新建一个空物体赋值给这个属性。设置该空物体的Transform,即可设置抓取该物体时的方位。下方LeftSnapHandle是左手的设置。(可在运行时设置该空物体旋转方位属性,达到要求)

新增:VRTK丨与物体交互

 

3、Use

效果:手柄射线选中实现效果

是自己重写上述Touch和Grab效果,在抓取的各个阶段,实现自己想要的功能。

 

 

三、实现功能:

1、抓取/触摸/Use时,物体代替控制器

即抓取某物体后,手柄被替换成了该物体。

a、首先完成上述物体抓取/触摸/Use的相关配置

b、给物体再添加 VRTK_InteractControllerAppearance 

HideControllerOnGrab:抓取后,抓取的控制器消失

HideDelayOnGrab:延迟x秒,控制器消失

新增:VRTK丨与物体交互

 

2、交互时物体震动反馈

a、首先完成上述物体抓取/触摸/Use的相关配置

b、给物体再添加 VRTK_InteractHaptics

Srrength、Duration、Interval分别是:力度、持续时间、间隔时间。

新增:VRTK丨与物体交互

 

 

四、快捷配置

即不用自己挂代码、赋值属性,快速实现配置物体上述属性的方法:

选中物体,Windows——VRTK——SetupInteractableObject,将该对话框成为标签,能看到全部内容。