ARKit Pods — FocusNode

这是一篇非常简短的文章,解释了如何实现我创建的名为FocusNode的Pod。

实际上,这实际上与Apple在其ARKit演示中使用的类和代码完全相同,我只是拆分了该类并将其打包,以便可以轻松地在我的ARKit项目中包含和使用它,并认为其他人可能也希望这样做。


此Pod的存储库位于:

maxxfrazer / ARKit-FocusNode

FocusSquare`类直接取自Apple的ARKit示例,并打包为任何人都可以轻松使用。 …

github.com

假设您已经设置了ARKit项目,请创建一个包含pod 'FocusNode' 。 整个过程应类似于以下内容:

 项目“ PROJECT.xcodeproj” 
平台:ios,“ 12.0”
目标“项目”
use_frameworks!

吊舱 “ FocusNode”
结束

跳到ViewController.swift文件(在终端中运行pod install后创建的工作区中)并import FocusNode 。 完成之后,您应该可以访问新类FocusSquare ,这将创建一个具有基本方形UI的对象。 将其附加到场景图的rootNode,并将FocusSquare的委托设置为sceneView。 它看起来应该像这样:

   focusNode = FocusSquare() 覆盖 func viewDidLoad(){ 
...
...
自我 .focusNode.viewDelegate = sceneView
sceneView.scene.rootNode.addChildNode(
自我 .focusNode)
}

为了使其正常工作,您需要设置配置以检测水平和垂直平面。 为此,您的配置创建将看起来像这样,然后在会话上运行。

  配置= ARWorldTrackingConfiguration() 
configuration.planeDetection = [。
水平 ,。 垂直 ] sceneView.session.run(配置)

最后添加此渲染器功能以更新FocusSquare,如下所示:

  func renderer( _渲染器:SCNSceneRenderer,updateAtTime时间:TimeInterval){ 
DispatchQueue.main.async {

自我 .focusSquare.updateFocusNode()
}
}

现在我们应该有一个看起来像这样的应用程序:

完整示例可在同一存储库中找到,此处:

maxxfrazer / ARKit-FocusNode

FocusSquare`类直接取自Apple的ARKit示例,并打包为任何人都可以轻松使用。 …

github.com


而已! 我希望您喜欢这个使用“ FocusNode” Pod的简短教程,请查看我在Medium Profile上的其他文章,在GitHub上的其他存储库,并在Twitter上关注我,了解我正在处理的其他事情的更新!