ARWorldMap是ARKit2中一个非常实用的新功能,它能够实现持续性AR体验和共享式多人AR体验。
请在UnityARKit插件目录下查看示例:Examples/ARKit2.0/UnityARWorldMap/UnityARWorldMap.unity每个会话都会随着操作者四处移动并检测更多特征点时构建一个ARWorldMap。
你可以通过C#从一个会话中获取当前ARWorldMap,将它保存到你的Application.persisentDataPath中。
你也可以在保存的位置载入一个已保存的ARWorldMap。
这样即使你离开会话后再回来,虚拟对象仍会在相同的坐标空间出现。
ARWorldMap可以被序列化为一个字节数组,并使用WiFi、蓝牙或其它分享方式发送到另一个设备上。
另一方面,它也能被反序列化,用来将其它设备重定位到与第一个设备相同的世界坐标映射,从而得到共享的多人游戏体验。
当拥有ARWorldMap后,不管是通过载入得到、还是从内存中获取、亦或是从其它设备接收,你的设备都能将其设为配置中的一个参数,然后使用该配置重置ARSession,从而共享坐标系统信息。
这样做会重置会话,并且随着你四处移动,应用会尝试将ARWorldMap中的特征点与你环境中所检测到的特征点相互匹配。
当它们成功匹配后,会话将重定位你的设备坐标,将其与ARWorldMap中所保存的坐标匹配。
1