Unity XR Interaction Toolkit研究

XR Interaction Toolkit研究

官方链接:
https://docs.unity3d.com/Packages/[email protected]/api

XRRig:其实就是XROrigin,官网还没改过来,通常连接到XR Rig的基础对象上,并将其存储起来,然后通过移动进行操作。它也被用来偏移相机。在这里插入图片描述

  • OriginBaseGameObject:根节点,射线移动和转移就是修改这个对象的位置
  • CameraFloorOffsetObject:设置相机距离地板的高度
  • TrackingOriginMode:原点空间跟踪模式(PICO不能选择NotSpecified)

TrackedPoseDriver:

在这里插入图片描述

https://docs.unity3d.com/Packages/[email protected]/api/UnityEngine.SpatialTracking.TrackedPoseDriver.html

  • Device:跟踪设备类型
  • PoseSource:追踪资源,大部分选择Center
  • TrackingType:姿态跟踪类型,分位置和朝向
  • UpdateType:刷新类型,选择UpdateAndBeforeRender,能提供最顺滑的姿态追踪和最低时延的设备延迟

XRController:从XR输入子系统将跟踪的输入控制器设备上的特征值解释为XR交互状态,例如Select。此外,它将被跟踪设备的当前姿态值应用于(UnityXR支持多个XRController,比如左手可以同时有一个Ray交互控制器和一个Direct交互控制器,这样可以实现复杂的交互,但要小心各个交互者之间的层级设定)

在这里插入图片描述

  • UpdateTrackingType:刷新类型
  • controllerNode:控制器选择(左右手)
  • EnableInputActions:是否监听输入动作
  • selectUsage:选择按钮,抓取动作按钮
  • activateUsage :激活按钮(选择状态中激活)
  • uipressUsage:ui按下按钮
  • AxisToPressThreshold:设置上述三个交互按钮的按下最小限制
  • RotateObjectLeft/Right/In/Out:设置四个方向的按键定义(用来定义移动和旋转射线抓取物品)
  • ModelPrefab:手模预制物,可以自动生成
  • ModelParent:手模父节点
  • Model:手模Tnf
  • AnimateModel:动画模块
  • 调用手柄震动函数:SendHapticImpulse(float amplitude, float duration)

XR Socket Interactor:用于通过插座定位可交互内容的交互者

在这里插入图片描述

  • InteractionLayerMask:交互层级遮罩,指定可交互的层级
  • AttachTransform:附加对象
  • Keep Selected Target Valid:在最初选择一个可交互对象后,即使它不再是有效的目标,也是否继续选择它。(不勾选,抓取的物品要一直保持选中状态,否则就会掉落)
  • Show Interactable Hover Meshes:当交互对象悬停在插座上时,是否显示网格
  • Socket Active:是否激活插座
  • Recycle Delay Time:设置移除对象后插座拒绝悬停的时间

XRRayInteractor:用于在远处与可交互对象进行交互的交互器。这是通过光线转换(ray cast)来处理的,它会更新这个交互器的当前有效目标集。

在这里插入图片描述
在这里插入图片描述

  • InteractionLayerMask:交互层级遮罩,指定可交互的层级
  • EnableInteractionWithUIGameObject:交互器是否能影响UI
  • ForceGrab:是否将抓取物品拉到手上
  • AttachTransform:附加对象
  • RayOriginTransform:射线原点,朝向也是调它
  • LineType:射线类型:直线、抛物线、贝塞尔曲线
  • Raycast Mask:射线可交互的层级,Unity自带的层级类,不勾选的层级,射线会穿透它
  • HitClosestOnly:是否只交互最近碰撞的物品
  • AudioEvent:添加触发声音片段
  • HapticEvents:添加触发震动
  • InteractorEvents:添加交互事件

XRDirectInteractor:交互器用于直接与接触的交互设备进行交互。这是通过更新此交互器的当前有效目标集的触发器卷来处理的。这个组件必须有一个被设置为触发器的碰撞卷才能工作。

在这里插入图片描述

  • SelectActionTrigger:对控制器输入进行定义,如何确定为select
  • KeepSelectedTargetVailid:当选择一个可交互目标后,即使他不再是有效的目标,仍然能选择他
  • HideControllerOnSelect:选择状态下是否隐藏控制器
  • AllowHoveredActivate:是否允许悬浮情况下激活

XR Simple Interactable:最简单的交互对象,只是有一个具体的交互实现,一般用在去对交互事件进行相应,没有实际的交互手段。

在这里插入图片描述

  • Interaction Layer Mask:层掩码允许与交互层掩码与该交互层掩码中的任何层重叠的交互者进行交互。
  • Custom Reticle:有效时出现在射线尾端的十字线。
  • Select Mode:是否运行多个交互者和交互对象进行交互

XR Grab Interactable:允许基本“抓取”功能的可交互组件。可以连接到一个选择的交互者,并在遵守物理的同时跟随它(并在释放时继承速度)。

在这里插入图片描述

  • Interaction Layer Mask:层掩码允许与交互层掩码与该交互层掩码中的任何层重叠的交互者进行交互。
  • Custom Reticle:有效时出现在射线尾端的十字线。
  • Select Mode:是否运行多个交互者和交互对象进行交互
  • Movement Type:移动方式选择(如果想让抓取物品保持物理属性,不穿透墙和桌子,这里要选择“速度追踪”)
  • Retain Transform Parent:交互者放下物品后是否还原至原父对象下
  • TrackPositon:是否追踪交互者的位置
  • Track Rotation:是否追踪交互者的朝向
  • Throw On Detach:是否在释放时继承交互者的速度
  • Force Gravity On Detach:是否强制对象释放时拥有重力
  • Attach Transform:交互时依附的点(默认设置物品的中心)

LocomotionSystem:用于控制对XR Origin的访问。这个系统强制在同一时间只有一个移动供应商可以移动XR原点。这是访问XR Origin受控制的唯一地方,不推荐使用多个LocomotionSystem实例驱动单个XR Origin。

Teleportation Anchor:锚是将用户传送到预先确定的特定位置和/或旋转的远程传送目的地。

在这里插入图片描述

  • Interaction Layer Mask:层掩码允许与交互层掩码与该交互层掩码中的任何层重叠的交互者进行交互。
  • Custom Reticle:有效时出现在射线尾端的十字线。
  • Select Mode:是否运行多个交互者和交互对象进行交互
  • Teleport Anchor Transform:传送目的地的位点。
  • Match Orientation:定位origin的方式选择
  • Teleport Trigger:传送触发的时间选择
  • Teleportation Provider:该远程传送可交互的远程传送提供者将远程传送请求传送

Teleportation Area:区域是一个传送目的地,将用户传送到表面上的指定位置

在这里插入图片描述

  • Interaction Layer Mask:层掩码允许与交互层掩码与该交互层掩码中的任何层重叠的交互者进行交互。
  • Custom Reticle:有效时出现在射线尾端的十字线。
  • Select Mode:是否运行多个交互者和交互对象进行交互
  • Match Orientation:定位origin的方式选择
  • Teleport Trigger:传送触发的时间选择
  • Teleportation Provider:该远程传送可交互的远程传送提供者将远程传送请求传送

Continuous Turn Provider:连续旋转提供者

在这里插入图片描述

  • Turn Speed:旋转速度
  • Input Binding:旋转轴绑定
  • Controllers:控制器设置
  • Deadzone Min/Max:能否触发功能的最大值最小值

Snap Turn Provider:步进旋转提供者

在这里插入图片描述

  • Turn Input Source:旋转轴绑定
  • Controllers:控制器设置
  • Turn Amount:每次捕捉到信号旋转的值
  • Dead Zone:触发信号的限制
  • Activation Timeout:两次激活的时间间隔

Continuous Move Provider:连续移动提供者

在这里插入图片描述

  • Move Speed:移动速度
  • Forward Source:自定义向前的方向
  • Input Binding:移动轴绑定
  • Controllers:控制器设置
  • Deadzone Min/Max:能否触发功能的最大值最小值

猜你喜欢

转载自blog.csdn.net/m0_37965883/article/details/124163747
今日推荐