VRTK中身体的物理检测、头显的碰撞检测及头显碰撞视图的淡入淡出

VRTK版本:VRTK2.0

一、身体碰撞检测

相关脚本:VRTK_BodyPhysics、VRTK_PolicyList

VRTK_BodyPhysics 脚本简介
VRTK_BodyPhysics作用:允许身体受物理影响,并检测与其他有效几何体的碰撞。
VRTK_BodyPhysics用法:将VRTK_BodyPhysics脚本挂在任何活动场景GameObject上。
VRTK_BodyPhysics参数说明:

在这里插入图片描述
以下是我现在常用的几个变量↓↓↓↓↓↓↓↓↓

Enable Teleport: 启用传送,如果选中此选项,则在“目标集”事件中将传送标志设置为true,以便传送脚本知道是否要操作新的目标。
Target List Policy: 指定的VRTK_PolicyList脚本,用于确定碰撞检测的目标是否有效
Enable Body Collisions:启用身体碰撞:如果选中,身体碰撞器和刚体检测碰撞。
Ignore Grabbed Collisions: 忽略抓取的碰撞:如果选中此选项,则控制器抓取的任何物品都不会与身体碰撞器碰撞。如果要求用户抓住和挥舞物体,这将非常有用,因为如果没有忽略抓取碰撞,则挥舞抓取的物体碰到身体时会受到反弹。
Ignore Collisions With: 忽略以下碰撞:不会与身体碰撞器碰撞的游戏物体数组。
Headset Y Offset: 头显的Y轴偏移。为用户创建的对撞机设置为距用户头显位置的高度。如果需要降低对撞机以在游戏区域对撞机和头显之间留出空间,则此偏移值将缩短生成的对撞机的高度。
Movement Threshold: 移动阈值:头显在当前位置和站立位置之间的移动量,以确定用户是否在游戏空间中行走,如果移动增量高于该阈值,则忽略身体物理碰撞。
Play Area Movement Threshold: 可移动区域的移动阈值:在可移动区域内用户的当前位置和上一个位置之间的移动量,以确定用户是否在移动。
Standing History Samples: 在确定游戏空间中,用户当前站立位置是否改变之前,头像位置的最大变化偏差数。

以下是不曾用过的变量,直接而使用的默认初始值↓↓↓↓↓↓↓↓↓

Lean Y Threshold: 精益ÿ阈值:所述y耳机和对象之间存在距离俯身,如果对象存在俯身大于该阈值,则当前的站立姿势将不更新高。
Step Up Y Offset: 向上Y偏移:检查对象是否可以踩到时要考虑的最大高度。
Step Thickness Multiplier: 步厚倍增器:脚部碰撞器的宽度/深度相对于身体碰撞器的半径。
Step Drop Threshold: 阶梯下降阈值:当前游戏区域Y位置与新的逐步上升的Y位置之间的距离,以考虑有效的逐步上升。较高的数量可以帮助在斜坡上颤抖或对撞机高度略有增加。
Custom Raycast: 自定义射线广播:当进行射线广播查找地板时使用的自定义射线广播器。
Fall Restriction: 跌落限制:检查是否应该跌落到最近的楼层。如果选定的限流器仍在当前楼层上方,则不会掉落到最近的楼层。能够俯身向下看,效果很好。仅适用于掉落而不是瞬移。
Gravity Fall Y Threshold: 重力下降Y阈值:y当地板和头戴式耳机之间的距离超过该距离且Enable Body Collisions为真时,将使用刚体重力代替传送到最近的地板。
Blink Y Threshold: 眨眼Y阈值:在y开始淡入淡出过渡之前必须改变的地面与耳机之间的距离。如果新用户位置的距离比阈值高,那么耳机的眨眼过渡将在传送时激活。如果新用户位置在阈值内,则不会发生眨眼过渡,这对于在斜坡,网格和地形上行走以防止持续眨眼很有用。
Floor Height Tolerance: 地板高度公差:在认为地板高度发生变化之前,y位置需要在当前地板y位置和上一个地板y位置之间改变的量。较高的值表示Drop To Floor如果y用户下方的楼层的变化没有达到给定的阈值,则a 发生的可能性较小。
跌落检查精度:检查是否发生跌落时要在游乐区Y位置应用的舍入量。
Fall Check Precision: 传送器:捕捉到地板时要使用的VRTK传送脚本。如果将此留空,则需要将Teleport脚本应用于相同的GameObject。
Teleporter: 自定义游戏区域刚体:应用于游戏区域的自定义刚体。如果未提供,则将在游戏区域GameObject上找到现有的刚体,否则将使用默认的刚体。
Custom Play Area Rigidbody: 自定义对撞机容器:一个GameObject,代表Custom Body Collider Container: 一个自定义对撞机容器。它应该包含一个对撞机组件,该组件将用于检测身体碰撞。如果未提供,则会自动生成。
Custom Foot Collider Container: 自定义足部碰撞容器:一个GameObject,代表自定义足部碰撞容器。它应该包含一个对撞机组件,该组件将用于检测台阶碰撞。如果未提供,则会自动生成。

.
.
*VRTK_PolicyList脚本简介
VRTK_PolicyList作用:对目标进行检测以查看是否允许其他操作。
VRTK_PolicyList参数说明:
在这里插入图片描述
OperationTypes -应用于当前脚本的操作。
OperationTypes.Ignore -将忽略任何包含标识符列表中包含的标签或脚本组件的游戏对象。
OperationTypes.Include -仅包括包含标识符列表中包含的标签或脚本组件的游戏对象。
CheckTypes -可以检查的元素类型。
*Nothing * -不应用于任何类型。
*Everthing * -应用于游戏对象的标签、层级、脚本对象。
*Tag * -应用于游戏对象的标签。
*Script * -应用于添加到游戏对象的脚本组件。
*Layer * -应用于游戏对象的图层。
Size -进行检测的标识符列表。

当在场景中添加了VRTK_BodyPhysics脚本,并且该脚本指定了一个VRTK_PolicyList,那么,用户身体检测碰撞时,会受到VRTK_PolicyList脚本中的设置影响,判断是否可以和当前碰撞物体有碰撞交互。

.

二、头显碰撞检测

相关脚本:VRTK_HeadsetCollision、VRTK_PolicyList

VRTK_HeadsetCollision 脚本简介
VRTK_HeadsetCollision :当头显与有效碰撞体发生碰撞时的检测管理脚本。
VRTK_HeadsetCollision用法:将VRTK_HeadsetCollision脚本挂在任何活动场景GameObject上。
VRTK_HeadsetCollision 参数说明:
在这里插入图片描述
Ignore Trigger Colliders: 忽略头显于触发器的碰撞:如果该项=true,则头显忽略与触发器的碰撞检测
colliderRadius: 头显碰撞器的半径:自动为头显生成一个球形碰撞器,这里可碰撞器的半径,用于检测头显碰撞。
Target List Policy: 指定的VRTK_PolicyList,用于确定头显碰撞是否可对碰撞目标进行操作。

.
VRTK_PolicyList脚本的介绍在该文章的上文说了↑↑↑↑↑↑↑↑↑↑↑

.
可以使用VRTK_HeadsetCollision脚本和VRTK_PolicyList来实现头显只能与指定的目标发生碰撞,或者忽略和指定目标的碰撞检测。或者忽略头显与触发器的碰撞检测。

.

.

三、头显发生碰撞时视野变黑的控制

相关脚本:VRTK_HeadsetFade、VRTK_HeadsetCollisionFade、VRTK_PolicyList

VRTK_HeadsetFade与VRTK_HeadsetCollisionFade共同使用
作用: 当检测到头显碰撞事件时,启动视图的淡入。在给定时间内将头显视图的颜色更改为指定颜色。
用法:将两个脚本放置在任何活动场景GameObject上。
参数说明:
在这里插入图片描述
Time Till Fade: 设置等待渐变发生的时间(一般设为0就可以)
Blink Transition Speed: 发生碰撞时淡入淡出的变化速度
Fade Color: 设置发生有效碰撞时使头显淡入淡出的颜色。
Target List Policy: 指定的VRTK_PolicyList,用于确定头显碰撞淡入淡出是否会作用于任何对象。
Headset Collision:“检测头显碰撞的控制脚本,确定头显与有效几何体碰撞的是否能发生其他操作。注:如果将此留空,则需要将脚本应用于相同的挂载VRTK_HeadsetCollision 的物体上。
Headset Fade: 头显淡入淡出脚本。注:如果将此留空则需要将脚本应用于挂载VRTK_HeadsetFade的物体上。

VRTK_PolicyList脚本的介绍在该文章的上文说了↑↑↑↑↑↑↑↑↑↑↑
.

在使用VRTK时,当头显与其他游戏物体发生碰撞了,会有一层黑色遮罩遮住了用户视野。可以使用VRTK_HeadsetFade、VRTK_HeadsetCollisionFade、VRTK_HeadsetCollision 、VRTK_PolicyList来管理控制这个行为。达到让头显只能与指定目标碰撞时将视图颜色更改为指定颜色,或者与指定目标碰撞时不会发生视野渐变的行为。

发布了14 篇原创文章 · 获赞 0 · 访问量 417

猜你喜欢

转载自blog.csdn.net/a0_67/article/details/104927129