【问题标题】:Persistance with an ARWorldMap created with ARKit through Unity通过 Unity 使用 ARKit 创建的 ARWorldMap 的持久性
【发布时间】:2021-05-16 19:21:41
【问题描述】:

我是 AR 新手,使用 Unity、ARFoundation 和 ARKit。

我的ARWorldMaps 是否会坚持户外或室内体验,它会像 Azure 一样有效吗?我只会在 iOS 上部署,所以跨平台并不重要。

【问题讨论】:

    标签: swift objective-c unity3d augmented-reality arkit


    【解决方案1】:

    保存 ARWorldMap 不是一门火箭科学。如果 Unity 的 ARKit 扩展支持此功能,则 ARWorldMap 将以与预期相同的方式保存在任何 AR 应用程序中。主要区别在于 iOS 的 Unity 构建是用 slow Objective-C 编写的,而不是 faster UIKit 的 Swift 和 fastest用于 SwiftUI 的 Swift。在 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 应用中存储和检索持久性数据的最有效的离线方式。

    【讨论】:

    • 完美。我可能无法选择快速工作。速度有明显区别吗?我可以切换到 RealityKit,只关心音频的功能。
    • 如果 AR 应用程序很简单(用几行代码编写),速度上的差异可以忽略不计。然而,即使是简单的 SwiftUI 应用也能更快地启动。
    猜你喜欢
    • 1970-01-01
    • 2011-05-19
    • 2018-01-28
    • 1970-01-01
    • 2020-03-12
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    相关资源
    最近更新 更多