目标:我有一个房间的预先扫描的空间地图。(通过入职流程执行。)
我们将该地图添加到Unity中的预先定义的静态位置的全息位置/标记/数字双胞胎。例如,墙面空间、配件等。
然后启动应用程序,并在正确的位置包含所有全息数据,而不考虑用户的物理开始位置。
简而言之,我想要一个应用程序启动,在现实世界中的设定位置预定义全息图,无论该应用程序在该房间内的哪个位置启动。
我已经阅读了很多关于空间映射、空间理解等的教程和演练等,但它们似乎并没有解决我的问题。
我已经使用hololens网络浏览器界面下载了房间的3D空间地图,并使用Unity放置了全息图,以及它们各自的脚本等。
现在,当我启动应用程序时,所有的全息图都是相对于彼此正确创建的,但只有当我启动应用程序站在设置点,朝设定的方向看时,它们才会出现在正确的位置。
主要的想法是找到房间的空间锚点(我不知道在创建的空间地图中我从哪里得到这些锚点!)然后一旦找到它们,旋转/平移全息世界以匹配实时扫描的空间锚点。
其他方法包括:-将所有对象手动放置在一些配置中-应用程序的第一次运行-创建二维码并将它们放置在设置的位置,以与上面主要思想中的空间锚点相同的方式操作。
有没有人这样做过,有没有更好的方法在每个运行的应用程序的真实位置产生预定义的全息图?
其他问题寻找类似的答案,但不能解决我的用例:https://forums.hololens.com/discussion/2938/position-independent-object-placement https://forum.unity.com/threads/how-do-i-refer-to-a-specific-space-in-a-spatial-mapped-room.425525/
发布于 2017-10-26 23:40:40
我试过了,这个效果很好。
发布于 2017-10-27 00:43:11
首次运行应用程序时,
这是你能采取的最简单的行动。基本上,我会添加一个TapToPlace脚本到您想要锚定的所有全息图中。当您第一次启动应用程序时,它们将位于Unity中的任何位置。但是,一旦您关闭应用程序并重新打开它,它将位于您放置它们的相同位置。如果您不希望用户能够如此轻松地移动它们,我可以添加某种类型的方法,通过单击按钮或语音命令来禁用TapToPlace。
您可以在MRTK中找到TapToPlace脚本。这是一种非常简单的方法,因为你不需要学习附加和移除世界锚点,因为它已经为你完成了。
https://stackoverflow.com/questions/46950969
复制相似问题