HoloLens 开发笔记

拖拽移动

一、如果想与对象产生交互,例如:实现拖拽旋转等操作,对象必须包含以下组件:

Constraint manager:对操作的对象做出限制:旋转轴、移动轴、朝向、距离等。

Object manipulator:对象操控器,

NearInteractionGrabbable:主要是检测当前对象上是否有碰撞器

跟踪

二、如果想要跟踪某个对象,例如:实现菜单跟随视野等,对象必须包含以下组件(Solver*:所有求解者派生的基本抽象类。它提供状态跟踪、平滑参数和实现、自动求解器系统集成和更新顺序):

1、轨道求解器

SolverHandler&Orbital

2、径向视点求解器

SolverHandler&RadialView

3、跟踪求解器(正向轴放置在跟踪目标的前面)

SolverHandler&Follow

4、中间求解器(将在两个转换之间保留附加的GameObject)

SolverHandler&InBetween

5、表面磁求解器(通过对一组表面的分层蒙版进行光线投射,并将游戏对象放置在该接触点上)

SolverHandler&SurfaceMagnetism

6、方向指示符

SolverHandler&DirectionalIndicator
Directional Indicator example scene

7、带有HandConstraint和HandConstraintPalmUp的手动菜单

 

 

边界框

如果想对物体缩放、旋转时,需要添加以下脚本控件:BoundsControl.cs(旧:BoundingBox.cs)

  • Activation(激活)属性
  1. Activate On Start:场景启动后,边界框变为可见。
  2. Activate By Proximity:当铰接的手靠近对象时,边界框变为可见。
  3. Activate By Pointer:当边界框成为手射线指针的目标时,它将可见。
  4. Activate Manually:边界框不会自动可见。您可以通过访问boundingBox.Active属性通过脚本手动激活它。
  • Flatten Axis(展平轴)属性:二维包围框,通常用于薄对象。
  • Scale Handles Configuration(手柄配置)
  1. Handle Material: BoundingBoxHandleWhite.mat
  2. Handle Grabbed Material: BoundingBoxHandleBlueGrabbed.mat
  3. Scale Handle Prefab: MRTK_BoundingBox_ScaleHandle.prefab
  4. Scale Handle Slate Prefab: MRTK_BoundingBox_ScaleHandle_Slate.prefab
  5. Scale Handle Size: 0.016 (1.6cm)
  6. Scale Handle Collider Padding: 0.016 (makes the grabbable collider slightly bigger than handle visual)
  7. Rotation Handle Prefab: MRTK_BoundingBox_RotateHandle.prefab
  8. Rotation Handle Size: 0.016
  9. Rotation Handle Collider Padding: 0.016 (makes the grabbable collider slightly bigger than handle visual)

限制大小:MinMaxScaleConstraint.cs

Unity中快捷键

Unity中快捷键

Shift按下+鼠标左键

左手显示可拖拽物体

Shift连按两次

左手常在/反之取消

Space按下

右手显示

Space连按两次

左手常在/反之取消

Ctrl

手势旋转

猜你喜欢

转载自blog.csdn.net/qq_18427785/article/details/116292861