通过 Unity 使用 ARKit 创建的 ARWorldMap 的持久性
Persistance with an ARWorldMap created with ARKit through Unity
我是 AR 新手,正在使用 Unity、ARFoundation 和 ARKit。
我的 ARWorldMap
在室外或室内体验中是否具有持久性,它会像 Azure 一样有效吗?我只会在 iOS 上部署,所以跨平台并不重要。
拯救 ARWorldMap 不是火箭科学。如果 Unity 的 ARKit 扩展支持此功能,则 ARWorldMap 将以与预期相同的方式保存在任何 AR 应用程序中。主要区别在于 iOS 的 Unity 构建是在 slow Objective-C 中编写的,而不是 faster Swift 用于 UI 套件,而不是 最快的 Swift 用于 SwiftUI。在 iOS 中,用于存储 ARWorldMap 必须使用 NSKeyedArchiver
,而用于检索 ARWorldMap 数据必须使用 NSKeyedUnarchiver
.
func writeWorldMap(_ worldMap: ARWorldMap, to url: URL) throws {
let data = try NSKeyedArchiver.archivedData(withRootObject: worldMap,
requiringSecureCoding: true)
try data.write(to: url)
}
ARWorldMap 存储世界坐标网格、设备的位置和方向、周围环境的参考快照和 ARAnchors。很难说出你的意思 ...as effective as Azure...
但 ARWorldMap 数据是在 iOS AR 应用程序中存储和检索持久性数据的最有效离线方式。
我是 AR 新手,正在使用 Unity、ARFoundation 和 ARKit。
我的 ARWorldMap
在室外或室内体验中是否具有持久性,它会像 Azure 一样有效吗?我只会在 iOS 上部署,所以跨平台并不重要。
拯救 ARWorldMap 不是火箭科学。如果 Unity 的 ARKit 扩展支持此功能,则 ARWorldMap 将以与预期相同的方式保存在任何 AR 应用程序中。主要区别在于 iOS 的 Unity 构建是在 slow Objective-C 中编写的,而不是 faster Swift 用于 UI 套件,而不是 最快的 Swift 用于 SwiftUI。在 iOS 中,用于存储 ARWorldMap 必须使用 NSKeyedArchiver
,而用于检索 ARWorldMap 数据必须使用 NSKeyedUnarchiver
.
func writeWorldMap(_ worldMap: ARWorldMap, to url: URL) throws {
let data = try NSKeyedArchiver.archivedData(withRootObject: worldMap,
requiringSecureCoding: true)
try data.write(to: url)
}
ARWorldMap 存储世界坐标网格、设备的位置和方向、周围环境的参考快照和 ARAnchors。很难说出你的意思 ...as effective as Azure...
但 ARWorldMap 数据是在 iOS AR 应用程序中存储和检索持久性数据的最有效离线方式。