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上关注我,了解我正在处理的其他事情的更新!