VRTK_v4 直播教程笔记(2)物体交互

1. 交互器和可交互的物体

如果在场景里想要与物体交互的话,需要将物体变为可交互物体,然后用交互器(通常是跟随手柄)去触碰或抓取它。由于交互器和可交互的物体是一对的,所以它们都在 Tilia Interactions Interactables Unity 这个包里。

2.将物体变为可交互的物体

选择场景里要交互的物体,打开窗口在这里插入图片描述
点击在这里插入图片描述
物体就变为可交互物体。
交互的设定:
在这里插入图片描述

3.给左右手添加控制器

在TrackAlias下的左右手柄追踪点下添加交互器Prefab。在这里插入图片描述
配置交互器:
在这里插入图片描述
速度追踪是为了实现抛这个效果。就在ControllerAlias上。GrabAction还是对应的InputMapping里的节点。

4. Tracking by Transform和Tracking by rigidBody的差别

Tracking by Transform:在被抓住时无视其他物体的碰撞盒,始终跟随交互器。简单来说就是会穿模。
Tracking by RigidBody:在被抓住时也会同周围的碰撞盒交互,不会陷入其他物体的碰撞盒内。

5. 可控制的物体(Controllable Object)

可控制的物体是指一些可以被线性推拉,旋转的物体。例如 抽屉,门等。需要导入Tilia Interactions Controllables Unity这个包。

6. 制作一个可交互抽屉

同转换可交互物体一样,选择要转换的物体,打开转换窗口
在这里插入图片描述
选择控制类型:
大体分为两种,线性铰链(可以用物理来交互)线性位移(不带物理)
i:抽屉类型:我们选择Linear Transform
在这里插入图片描述
配置交互参数:
在这里插入图片描述
Step是最大最小值之间的间隔数。

ii:操纵杆,门和旋钮类型:选择Angular Transform
首先做一个操作杆模型。之后将操纵杆转换成可控制物体。
之后配置参数:
在这里插入图片描述
Drive Speed和Step Setting是一套的。
有时候我们想要操作杆只有有限个数的值,例如一个电闸只有开和关两个状态。这时,我们将step设置为0~1,步长设为1,勾选Snap To Step On Release。则在操纵操纵杆之后放手,操纵杆则会以Drive Speed的速度向最近的值移动。
在操作时发现有抖动的现象,这是因为操作杆应用了手柄放手时的速度。将追踪速度的衰减改为100就能解决这个问题。
在这里插入图片描述
ii:门的制作基本同lever一样。但是门框的碰撞盒可能会导致门合不上,所以我们希望门本身能忽略门框的碰撞盒。这时候需要引入一个包:Tilia Mutators CollisionIgnorer Unity
往场景里添加CollisionIgnorer。
在这里插入图片描述
将不需要交互的两个物体分别加到两个列表里。
在这里插入图片描述
iii:旋钮:制作基本同lever一样。但是旋钮一般比较小,不需要跟随手柄的位移,只用跟随手柄的旋转,且忽略抓取时的offset
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/farcor_cn/article/details/125175837