我正在尝试使用捏合手势实时缩放和 SCNNode:
这是我当前的代码
let pinchGestureRecognizer = UIPinchGestureRecognizer(target: self, action: #selector(handlePinch(from:)))
sceneView.addGestureRecognizer(pinchGestureRecognizer)
@objc
func handlePinch(from recognizer: UIPinchGestureRecognizer){
var pinchScale = recognizer.scale
pinchScale = round(pinchScale * 1000) / 1000.0
sceneView.scene.rootNode.enumerateChildNodes { (node, stop) -> Void in
if(node.name == "Box01"){
node.scale = SCNVector3(x: pinchScale, y: pinchScale, z: pinchScale)
}
}
}
但是节点的规模没有变大或变小?有人可以指出我的错误吗?
SCNNode 已加载并应用了动画,如下所示,
sceneView.scene.rootNode.addChildNode(node)
loadAnimation(animation: .Attack, sceneName: "art.scnassets/attack", animationIdentifier: "attackID");
让它快速工作
@objc func handlePinch(gesture: UIPinchGestureRecognizer){
if(scnnodeSelected){
if (gesture.state == .changed) {
let pinchScaleX = Float(gesture.scale) * tappedObjectNode.scale.x
let pinchScaleY = Float(gesture.scale) * tappedObjectNode.scale.y
let pinchScaleZ = Float(gesture.scale) * tappedObjectNode.scale.z
tappedObjectNode.scale = SCNVector3(pinchScaleX, pinchScaleY, pinchScaleZ)
gesture.scale=1
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)