我正在尝试使用SceneKit在ARKit中缩放椅子的3D模型 . 这是我的捏手势代码:
@objc func pinched(recognizer :UIPinchGestureRecognizer) {
var deltaScale :CGFloat = 0.0
deltaScale = 1 - self.lastScale - recognizer.scale
print(recognizer.scale)
let sceneView = recognizer.view as! ARSCNView
let touchPoint = recognizer.location(in: sceneView)
let scnHitTestResults = self.sceneView.hitTest(touchPoint, options: nil)
if let hitTestResult = scnHitTestResults.first {
let chairNode = hitTestResult.node
chairNode.scale = SCNVector3(deltaScale,deltaScale,deltaScale)
self.lastScale = recognizer.scale
}
}
它确实可以扩展,但由于一些奇怪的原因,它颠倒了3D模型 . 有什么想法吗?此外,尽管缩放有效,但是当使用捏合缩放在多个进程中使用时,它不会像不同的比例因子那样平滑且有点跳跃 .
1 回答
以下是我扩展节点的方法:
在我的示例中,当前节点引用
SCNNode
,尽管您可以根据需要设置它 .