← Unity APP 实例
← Xvisio SDK 文档主页
场景:Gesture.unity
在此场景中我们将展示基于诠视AR眼镜开发的手势识别功能,我们将通过AR眼镜两侧的鱼眼摄像机捕捉双手25个特征点,并将获取到的25个特征点的position和rotation数据以2个25关节点的模型展示在场景中。
同时可以通过手势对场景中的模型做拖拽、缩放、捏取等模型操作,可以对空间中的按钮做点击操作。我们将手掌朝向三维物体可以投射出一条虚线,虚线指向有碰撞体的物体时在虚线的末端将出现一个实心原点,此时做手势做捏取的操作可以通过射线远距离控制场景中的虚拟物体。
通过拖拽物体包围盒的顶点可以缩放虚拟物体,通过拖拽包围盒的边沿中心位置可以旋转虚拟物体。
通过双手抓住物体后向不同方向移动可以放大和缩小物体。
通过射线或者手势点击操作可以点击场景中的按钮。
当抓取到物体后物体将会跟随手势移动和旋转。
如下图所示,我们提供了一个简单的手势开发场景。
Step 1:
创建一个Unity空场景,删除场景中原有的摄像机,拖拽XvXR/Prefabs目录下的XvXRManager预制体到场景中(注意transform和rotation都为0),此时场景中就合入了AR眼镜的6tof模块。
Step 2:
拖拽XvXR/Prefabs目录下的MixedRealityToolkit、XvXRInput预制体到场景中,此时场景中就和合入了手势功能。
Step 3:
拖拽XvXR/Prefabs目录下的Cheese预制体到场景中,此时场景中会有一个已经设置好手势交互功能的奶酪模型。调整奶酪模型位置使摄像机可以看到场景中的奶酪。
Step 4:
在场景中创建一个空的Gameobject,将需要渲染的奶酪物体拖入这个Gameobject中,选中XvXRManager/Head/XvXRCamera/LeftCamera,在LeftCamera上的XvXREye代码中找到XvisioRenderParent选项,将创建的Gameobject拖入此选项中。奶酪组件上的代码请参考MRTK官方手势开发教程。
Step 5:
打包apk即可看到如下场景:
在Unity里使用MRTK手势模拟器
Step 1:
如下图选中MixedRealityToolkit 组件,在右侧Inspector栏中选择MRTK的默认方式
Step 2:
如下图点击Unit运行按钮,按下键盘Shift按键,Unity的Game栏中将出现一个虚拟的手模,我们可以通过此方法在Unity中调节好手势功能.
Step 3:
当我们需要打包时候需要再次将MixedRealityToolkit设置为AR眼镜的XvXR Hand MixedReality ToolkitConfigurationProfile 模式。
Step 4:
在切换MixedRealityToolkit 组件模式到时候会给更改camera的背景设置,我们需要在打包前将camera设置为纯黑背景。