VRTK: Headset Collision
在VR应用中可能经常会发生用户将头伸入物体中从而发生透视的效果。这不仅会造成不好的用户体验,更会引发许多BUG,为了解决这些“穿墙”的问题,VRTK中提供了一系列与头戴设备碰撞处理有关的组件:
- VRTK_HeadsetCollision
- VRTK_HeadsetFade
- VRTK_HeadsetCollisionFade
- VRTK_PositionRewind
示例场景
011_Camera_HeadSetCollisionFading
这个场景中展示了当用户将头部伸入墙壁中时,眼前会变为黑色,从而迫使用户后退,来解决穿墙的问题。
017_CameraRig_TouchpadWalking
这个场景包含了HeadSet Collision Fade和Position Rewind的组合使用,当用户与墙发生碰撞时将自动将用户移回墙外。
Headset Collision Fade
在PlayArea上加入以下脚本:
其中:
-
VRTK_HeadsetCollision中的Collider Radius规定了头部碰撞范围大小 -
VRTK_HeadsetCollisionFade中的Blink Transition Speed设定了当碰撞发生需要变色时渐变的速度。Fade Color指定了渐变后的颜色。
Position Rewind
在PlayArea上添加一个脚本:
其中:
-
Rewind Delay设定了从发生碰撞到开始传送之间的间隔时间。 -
Pushback Distance设定了在发生回退传送后PlayArea需要回退的距离,可以防止在回退传送后靠墙太近而重复发生传送。 -
Crouch Threshold设定了系统认定的“蹲下”这个动作的高度(从地面到头部)。回退回的位置应该是一个之前站立的位置而不是蹲下的位置。