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 | 此拾取物可被触达的最大距离。详见上文。 |