对MRTK中HandInteractionExamples实例的一些理解


前言

对HoloLens实例的一些浅陋的理解,大部分为官方自己解释
对MRTK中HandInteractionExamples实例的一些理解


一、按钮

BoxCollider 按钮前板的Box Collider。

PressableButton 手部按下按钮运动的交互逻辑。

PhysicalPressEventRouter 此脚本将事件从手动按下交互发送到Interactable

Interactable 处理各种类型的交互状态和事件。HoloLens凝视,手势和语音输入和沉浸式头显运动控制器输入被这个脚本直接处理。
Events – FollowMeToggle. ToggleFollowMeBehavior跟随
Events –GameObject.SetActive 禁用、关闭组件

AudioSource组件,用于声音反馈

NearInteractionTouchable.cs用于使任何对象可被全关节手输入触摸。在你的场景中添加一个NearInteractionTouchable,并配置一个可触摸的表面,这样当PokePointer触摸这个表面时,就可以获得PointerDown和PointerUp事件。

ButtonConfigHelper.cs 将最常修改的按钮元素聚集在一个地方的Helper组件

ColorChanger 改变渲染器上材质的颜色。有用的可视化按钮按下。

二、边界框

BoundingBox.cs脚本提供了用于在混合现实中转换对象的基本功能。边界框将在全息图周围显示一个立方体,以指示可以与之交互。立方体角和边缘上的手柄允许缩放或旋转对象,与ManipulationHandler.cs配合。
BoundingBox.HighlightWires 允许手动启用边框的线(边)高亮(边)。
ManipulationHandler.cs ObjectManipulate.cs 远距离交互作用相结合,以使对象可移动、旋转。

NearInteractionGrabbable.cs 接近最近的可抓取物

CursorContextObjectManipulator.cs 显示可移动光标

RotationAxisConstraint.cs 用于限制物体机械手或BoundsControl旋转轴的组件

MinMaxScaleConstraint.cs 最大最小比例限制

FollowMeToggle.cs一个实用程序脚本,用于通过**/停用径向视图求解器来切换“Follow Me”行为。这个脚本还提供了指定距离的可选切换。(自动添加RadialView、SolverHandler脚本)

HandInteractionPanZoom.cs 平移交互、双手缩放

HandInteractionTouch.cs 触摸交互

SliderChangeColor.cs 滑块颜色改变

HandInteractionTouchRotate 触摸时旋转


三、操作示例

FixedRotationToWorldConstraint 用于固定被操纵物体相对于世界的旋转的组件

TetheredPlacement帮助脚本重生的对象,如果他们走了太远,他们原来的位置。对于将永远下落的物体很有用。(加入刚性组件;参数距离阈值重生)

CursorContextInfo如果该组件是目标对象的一部分,则光标将显示该组件中指定的上下文
提示

ToolTip创建一个附加到对象上的浮动工具提示,并在对象相对于视图旋转时移动以停留在视图中。

ToolTipConnector即使目标移动,也要保持这种联系

ToolTipBackgroundMesh使用网格渲染器为工具提示渲染背景网格。如果网格有一个偏移锚点,你会得到奇怪的结果

ToolTipLineHighlight 围绕工具提示背景呈现轮廓

SimpleLineDataProvider两点连线参数

MixedRealityLineRenderer实现Unity内建的线渲染组件,并将线数据应用到它

ObjectManipulate.cs 远距离交互作用相结合,以使对象可移动、旋转。
可在Constraints修改使面向用户


四、滑动条

PinchSlider一种滑块,可以通过抓取/捏住滑块的拇指来移动

SliderSounds播放声音来传递缩放滑块的状态

ShowSliderValue 显示滑块的值

SliderSounds 移动滑块时播放声音


五、其它

RadialView 在一个视图锥内锁定一个尾随类型对象

ToggleHandVisualisation 手动网格可视化的初始设置-默认是禁用的

InputRecordingControls 工具类使输入记录服务可通过游戏对象访问。将按钮连接到公共功能,开始和停止记录输入

SolverHandler跟踪对象以计算位置和方向。如果您想手动覆盖并使用场景对象,请使用TransformTarget字段。

VisualProfilerControl 该类公开显示/隐藏可视化分析器的方法

PointerBehaviorControls将按钮连接到公共功能上,开启和关闭光线

ToggleGazeSource用于测试如何将凝视提供程序源从特定于平台的覆盖切换到默认的相机框架中心