Skip to main content

VRC Pickup

允许物体被玩家拾取、持有和使用。

版本​

检视面板中的拾取版本下拉菜单

现在你可以直接在组件上选择要使用的 VRCPickup 版本。默认情况下,创建新组件时会选择最新版本。现有的拾取物将继续使用其以前的版本,除非它们被更新并重新上传世界。

版本 1.0:

VRCPickup 组件的基础版本。

版本 1.1:

Auto Hold 属性简化为一个复选框——如果勾选,当玩家首次执行"抓取"动作时,物品将附着到玩家手上,并在执行第二次"抓取"(或使用映射到控制器的"放下"动作)时掉落。如果未勾选,物品将在初始抓取释放后立即掉落。

接近规则​

note

本节描述的所有规则也适用于"交互物",即具有 Interact 事件的 UdonBehaviour(它们也会在检视面板中显示"Proximity"滑块)。

"Proximity"值定义了你的拾取物在多远距离内可以被抓取。它以米(即"Unity 单位")为单位,一个默认立方体的边长为 1 个单位。

接近值起作用的抓取机制有 2 种:

  • 射线检测: 如果你离拾取物很远,或者在桌面模式下运行,如果来自手部(VR 中)或头部(桌面)的"激光"与拾取物上的碰撞器相交,拾取物将被高亮。用于比较 Proximity 的距离计算在 VR 和桌面模式下有所不同:
    • VR:激光原点(即手部控制器)与碰撞器上的撞击点之间的距离,以米为单位。
    • 桌面:激光原点(即头部或主相机位置)减去"额外触达"值,以补偿无法向前移动手部。这是一个近似值,还会考虑你的虚拟形象比例("更长的胳膊")。由于它是从距离中减去的,它将允许你抓取技术上在"Proximity"范围之外、但在此位置站立时可以通过移动手臂在 VR 中抓取的物体。
  • 悬停(仅 VR): 如果你的手足够接近一个物体,即使 UI 激光方向上的射线不会与物体相交,拾取物也会被高亮。这允许更自然的"抓取"物体。触达距离是一个以手为中心、半径为 0.4 米乘以虚拟形象比例的球体(注意,这个值不能直接与用户可用的"虚拟形象缩放"系统相比,尽管通过这种方式更改虚拟形象比例会影响触达距离)。
    • "Proximity"值仍然与手和拾取物上碰撞器之间的原始距离进行比较,这意味着所描述的"触达距离"只是"悬停"模式启动的接近程度的上限。
    • 例如,将 Proximity 设置为 0 需要手部进入碰撞器内部才能高亮拾取物(但在桌面模式下仍然可以抓取,因为桌面用户获得了"额外触达"补偿)。
    • 作为一种高级技术,你可能希望根据虚拟形象缩放系统提供的数据调整 Proximity 值。

需要:​

  • Rigidbody
  • Collider
参数描述
Momentum Transfer Method定义碰撞力如何添加到被击中的另一个对象上,使用 Rigidbody.AddForceAtPosition。
注意:仅当 'AllowCollisionTransfer' 开启时才会添加力。
Disallow Theft是否允许其他用户从别人手中抢走拾取物
Exact Gun如果设置为 Exact Gun,物体将被持握在精确枪位置
Exact Grip如果设置为 Exact Grip,物体将被持握在精确握持位置
Allow Manipulation When Equipped使用控制器时,用户是否可以在持有拾取物的同时操作它?
Orientation物体的持握方向
Auto Hold在用户完成抓取动作后,拾取物是否应该保持在用户手中?
- Yes:拾取物保持在用户手中,直到触发抓取或放下动作。
- No:初始抓取动作完成后立即释放拾取物。
- Sometimes:与上述"Yes"类似,但仅适用于使用键盘、鼠标、游戏手柄和 Vive 操作输入的用户。这是一个旧类型,大多数情况下不应使用。
- Auto:应用与"Sometimes"相同的逻辑,但也需要定义 Gun 或 Grip 才能自动持有。这是一个旧类型,大多数情况下不应使用。
Use Text当用户装备物体时出现的文本,提示他们"发射"物体。
需要将"Auto Hold"设置为"Yes"。
Throw Velocity Boost Min Speed物体需要移动多快才能被投掷。
Throw Velocity Boost Scale投掷的缩放比例。越高=投掷越快,越低=投掷速度越慢。
Pickupable是否可以拾取此拾取物?
Proximity此拾取物可被触达的最大距离。详见上文。