这里使用的根类是我在 Apple 的 ARKit 应用文档中找到的一个类,我希望自己能轻松使用它,并认为其他人也会从中受益。
示例 看起来与上面的 GIF 完全相同。
关于此 CocoaPod 的 Medium 文章 V1 版本
它位于以下页面上的可下载项目中: https://developer.apple.com/documentation/arkit/handling_3d_interaction_and_ui_controls_in_augmented_reality
我已经将该项目的许可证添加到此仓库中。
对于要放入 RealityKit 场景的类似对象,请尝试 FocusEntity 仓库。
将此仓库的 URL 添加到您的 Xcode 11+ 项目中,并选择 2.0+ 版本 https://github.com/maxxfrazer/ARKit-FocusNode.git
像这样在您的 Podfile 中包含此 pod
pod 'FocusNode'
请参阅示例,以获得完整的可工作示例,如上图所示
按照 V1 中的步骤操作,然后在您的 sceneView
类(例如 ARSCNView
)中,添加 ARSmartHitTest
协议,如下所示
extension ARSCNView: ARSmartHitTest {}
将 FocusNode
导入到您的 .swift 文件中,并像这样将其添加到您的场景中
let focusNode = FocusSquare()
sceneView.scene.rootNode.addChildNode(self.focusNode)
focusNode.viewDelegate = sceneView
如果不清楚,请查看示例项目或在 GitHub 或 Twitter 上给我留言。
我没有自己编写此代码的大部分内容,其中大部分直接取自 Apple 的示例