HoloLens开发实战小技巧篇:处理踩过的坑

今天来聊聊将Unity UI的遮罩功能与MRTK一起使用时的注意事项。

使用Unity UI的滚动功能时,超出滚动区域的部分会被遮盖和隐藏,但是使用MRTK时必须小心。

解决方案:

  • 将深度缓冲区格式设置为24位(MRTK建议使用16位)

  • 或者使用RectMask2D代替Mask

确认环境:

  • Unity 2019.2.21f1

  • MRTK v2.4.0

具体做法:

  • 创建一个新的Unity项目并导入MRTK(v2.4.0)

  • 从菜单中选择[Mixed Reality Toolkit]> Add to Scene and Configure...]。

  • 放置画布

  • 将“画布”的位置和大小调整为任意值(以下为示例)

HoloLens开发实战小技巧篇:处理踩过的坑_第1张图片

点击“Convert to MRTK Canvas”按钮

渲染模式现在是World Space,并且添加了Canvas Utility组件,如下所示。另外,点击Add NearInteractionTouchableUnityUI按钮。

HoloLens开发实战小技巧篇:处理踩过的坑_第2张图片

然后添加Near Interaction Touchable Unity UI

HoloLens开发实战小技巧篇:处理踩过的坑_第3张图片

 

将事件更改为在指针的NearInteractionTouchableUnityUI中接收

在画布上放置滚动视图

 

HoloLens开发实战小技巧篇:处理踩过的坑_第4张图片

 

  • 将文本放入“Scroll View > Viewport > Content”(在“文本”中输入任何字符串,以便可以确认滚动)

HoloLens开发实战小技巧篇:处理踩过的坑_第5张图片

在这里,设置16位

HoloLens开发实战小技巧篇:处理踩过的坑_第6张图片

在UnityEditor上看起来还不错,但是Mask在实际机器上无法正常工作,如下所示(因为在16位深度的情况下不会创建模板缓冲区)

HoloLens开发实战小技巧篇:处理踩过的坑_第7张图片

通过将深度格式更改为24位深度可以正确显示

HoloLens开发实战小技巧篇:处理踩过的坑_第8张图片

如果将“Depth Format”保留为16位深度,则使用RectMask2D而不是“Mask”可以获得类似的结果。

HoloLens开发实战小技巧篇:处理踩过的坑_第9张图片

参考API:

如何在MRTK中添加近距离互动:

https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/HowToAddNearInteractivity.html

深度缓冲区格式:

https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Tools/OptimizeWindow.html#depth-buffer-format

HoloLens开发实战小技巧篇:处理踩过的坑_第10张图片

你可能感兴趣的:(HoloLens,AR眼镜开发,AR,微软HoloLens,增强现实)