5.Interactable类更像是一个标识符。它向Hand标识该对象是可交互的。具有此组件的任何对象都将从Hand接收相关消息。
仅使用以上这3个组件,就可以能够创建许多不同且复杂的交互式对象。
这是最基本的交互式对象之一。
- 当手柄在其上悬停并按下交互键(扳机)时,玩家可以拾取此对象。
- 按下扳机时,物体会附在手柄上并保持在那里。
- 当释放扳机时,手柄的速度都会赋给抛出对象。
- 这可以创建可以拾取和抛出的基本对象。
7.LinearDrive类的主要功能是允许用手柄在开始和结束点之间移动对象,对象的当前位置用于设置LinearMapping。
8.CircularDrive类的主要功能是允许用手柄控制圆盘转动。对象的当前位置用于设置LinearMapping。
9.LinearMapping值由LinearDrive和CircularDive设置
-映射可用于将简单的手部交互映射到更复杂的行为。
-一个例子是长弓中的字符串,它使用LinearMapping将弓弦的拉动映射到长弓拉回动画。
-几个其他类使用该映射来插入其属性
LinearAnimation
LinearAnimator
LinearBlendShape
LinearDisplacement
HapticRack
10.VelocityEstimator类可用于根据对象位置的变化估计对象的速度和加速度。在大多数情况下,如果从实际控制器获得速度和加速度,将获得更准确的结果,但有时这是不可能的,例如使用2Dfallback hand时。
11.IgnoreHovering类主要功能是,当你希望某对象不进行悬停检查时,则可以将此组件添加到该对象或特定的碰撞器上。
12.UIElement类的主要功能:将此组件添加到unity的UI控件上,则手就可以与UI进行交互。
这将生成基于手部交互的鼠标悬停和单击事件,并通过Unity事件系统发送它们以使用现有的UI控件。
此外,它还将生成一个OnHandClick事件,该事件也将传递到点击的那个手柄。
-ItemPackage是用于暂时覆盖手柄的功能的对象集合
-在长弓的例子中,当长弓被手柄拿起后,长弓和手柄就结合在一起,并暂时替代手柄的功能。
-ItenPackages的概念是能够捡起和放回到物体被捡起的地方。
-一旦附带ItemPackage组件的对象被拿起,此对象会附着在手柄上,直到此对象被放回。不需要按钮就可以让此对象保持在手柄上。手柄仍然可以正常的传递消息(与场景中的对象交互),但此对象通常会禁用手柄的某些功能,例如手柄的悬停功能。