如何将ARAnchor大小转换为等效的SpriteKit

时间:2018-08-02 00:32:02

标签: ios swift sprite-kit scenekit arkit

问题:

如何创建与ARObjectAnchor.referenceObject的高度和宽度相同的新SKSpriteNode。

上下文:

我目前正在摆弄ARKit的新对象检测功能,并具有检测我扫描到的对象的工作代码。当ARKit检测到该对象时,它将提供ARObjectAnchor类型的新ARAnchor。

我知道ARSCNView提供了projectPoint方法,但是找不到ARSKView的任何等效功能。如何将ARObjectAnchor尺寸映射到新的Sprite?

这是我处理检测到的对象的方式:

func view(_ view: ARSKView, didAdd node: SKNode, for anchor: ARAnchor) {
    if let objectAnchor = anchor as? ARObjectAnchor {
        let width = objectAnchor.referenceObject.extent.x
        let height = objectAnchor.referenceObject.extent.y

        // How to translate above height/width to the below size? 

        let box = SKSpriteNode(color: .white, size: ???)
        node.addChild(box)
    }
} 

2 个答案:

答案 0 :(得分:0)

...
let size = CGSize(width: width, height: height)
let box = SKSpriteNode(color: .white, size: size)
...

答案 1 :(得分:0)

当我在图像识别应用程序中向我的SCNPlane中添加一个SKScene时,我做一个SCNPlane大小的* 10000(不要问我为什么不知道它是10000),如下所示

let toto = SCNNode(geometry: SCNPlane(width: 0.3, height: 0.1))
let sk = SKScene(size: CGSize(width: 3000, height: 1000))

对我来说,它的大小是相同的,请尝试一下并告诉我它是否适合您!