如何始终在空间墙前获得AR设计Unity HoloLens

时间:2019-05-07 07:30:29

标签: c# unity3d hololens mrtk

我正在使用Unity 2018.3.13fMRTK V2 RC1为HoloLens第1代设备构建应用程序。我有一个简单的AR设计,其中包含2个文本对象和1个rawimage对象。在构建完项目并将其部署到HoloLens之后,AR对象最终位于空间网格的后面(您知道所有这些空间三角形),但是我希望所有对象都在墙的前面。

我该怎么做?

画布设置为在主相机上 Image of canvas inspector

如果有需要更改的地方,我拥有DefaultMixedRealityconfiguraitonProfile的原始设置。

这是当它不显示墙的网格时,通过应用程序从全息孔看的样子(对不起,质量不好) enter image description here

,这是它落在网格后面时的样子 enter image description here

我是否需要在MainCamera上添加一些网格渲染器或其他东西以使之成为可能?

感谢您的帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

我不认为截至2019/5/9的MRTKv2具有可自动确保将特定对象放置在相机与其他任意网格和对撞机之间的代码(即,空间感知就是这样的网格) ,尽管您可以想象场景中只有一个任意的盒子或平面会遮挡该对象,但在这种情况下,您可能希望您的“介于两者之间”对象停留在这两种可能遮挡的事物之间)。

HTK中曾经有一个名为Tagalong.cs的脚本,它将通过从摄像机到可碰撞对象的光线投射来执行类似的操作:

https://github.com/microsoft/MixedRealityToolkit-Unity/blob/htk_release/Assets/HoloToolkit/Utilities/Scripts/Tagalong.cs

我认为这个大脚本分解为较小的脚本(即,求解器中的特定行为:)

https://github.com/microsoft/MixedRealityToolkit-Unity/tree/mrtk_release/Assets/MixedRealityToolkit.SDK/Features/Utilities/Solvers

但是,据我所知,“摄像机和任何可碰撞物体之间自动保持事物”的特定交互并未保留。如果我错了,其他人可以在这里纠正我,看来这不是V2中保留的行为。

展望未来,有两种可能:

1)可能在此处(https://github.com/microsoft/MixedRealityToolkit-Unity/issues)上向Github提交了一个问题,要求将该功能移植过来。

2)使用Tagalong.cs中的代码添加您自己的求解器即可完成此任务(即,代码似乎已经存在,只需完成一些工作即可对它进行重新排序以处理所需的内容)

答案 1 :(得分:0)

  1. 如果使用Sprite渲染器,请在图层中设置顺序(设置为0或-1)。
  2. 如果使用网格渲染器,请尝试停用动态遮挡。
  3. 尝试在“编辑”->“项目设置”->“排序图层”下更改排序图层的层次结构