美文网首页
ARKit(二)

ARKit(二)

作者: V_coa | 来源:发表于2018-06-12 22:20 被阅读27次

    ARSCNView 可以添加 3D 对象进去,它无缝的提供了 ARKit 和 SceneKit 的整合,如果需要用 SpriteKit 的话,可以使用 ARSKView

    The SceneKit asset catalog

    用来保存和 SceneKit 相关的资源

    Configuration

    AROrientationTrackingConfiguration 是 3DOF, 支持如下图的旋转跟踪,ARWorldTrackingConfiguration 是 6DOF。

    3DOF
    image.png
    6DOF
    image.png

    控制 AR session

    • ARSession.pause() 暂停 AR session 的跟踪,当切换到别的应用的时候,可以调用这个来暂停 AR session 的调用
    • ARSession.run() 将暂停的 session 重新启动。
    • ARSession.run(ARSessionConfig) 用来更新相应的配置
    • ARSession.run(_:options:) 用来重新设置运行 session 的配置

    处理 session 中断

    中断出现的情况,可能是底层操作系统发生的,也可能是用户切换 app 导致的。可以通过下面的方法来控制

        func sessionWasInterrupted(_ session: ARSession) {
            // Inform the user that the session has been interrupted, for example, by presenting an overlay
        }
    

    中断结束的时候,会调用下面的方法,可以在这里重新设置 session 的跟踪

        func sessionInterruptionEnded(_ session: ARSession) {
            // Reset tracking and/or remove existing anchors if consistent tracking is required
            trackingStatus = "Interrupted End"
        }
    

    处理 AR session 的状态改变

    当 AR session 在运行的时候,会有一些状态的改变,每当有状态改变的时候,会调用下面的方法

        func session(_ session: ARSession, cameraDidChangeTrackingState camera: ARCamera) {
            switch camera.trackingState {
            case .notAvailable:
                trackingStatus = "不可以用"
            case .normal:
                trackingStatus = "正常"
            case .limited(let reason):
                trackingStatus = "受限"
            }
        }
    

    相关文章

      网友评论

          本文标题:ARKit(二)

          本文链接:https://www.haomeiwen.com/subject/qznxeftx.html