gpt4 book ai didi

swift - 以速度旋转 scnnode

转载 作者:行者123 更新时间:2023-11-28 07:27:23 26 4
gpt4 key购买 nike

我有一个 scnnode,我使用 UIPanGestureRecognizer 围绕它的 Y 轴旋转。这很好,但我想对化身应用惯性,以便在用户抬起手指后它会一直旋转(并减速),有点像 ScrollView 。这可能吗?

   func addMoveAvatarGestures(sceneView: SCNView) {
let pan = gestureWithRootNode(target:self, action:#selector(rotateAvatar(_:)))
if let scene = sceneView.scene {
pan.rootNode = scene.rootNode
}
pan.maximumNumberOfTouches = 1
pan.minimumNumberOfTouches = 1
pan.delegate = self
self.rotationGesture = pan
sceneView.addGestureRecognizer(pan)
}

@objc func rotateAvatar(_ sender: gestureWithRootNode) {

guard let nodeToRotate = sender.rootNode else {
return
}


let translation = sender.translation(in: sender.view!)
let xToAngle = Float(self.view.frame.width) / Float(360)
let newAngleY = Float(translation.x) * xToAngle
let velocity = sender.velocity(in: sender.view!)
if (fabs(velocity.x) > fabs(velocity.y)) {
sender.setTranslation(CGPoint.zero, in: sender.view!)
nodeToRotate.eulerAngles.y += nodeExtensions.deg2rad(newAngleY)
}
}

最佳答案

您可以使用 applyTorque为此,它改变了节点的角动量。

它影响节点的angularVelocity .您可以通过设置 angularVelocityFactor 来约束或限制此效果。 .

关于swift - 以速度旋转 scnnode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56103673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com