我正在尝试为Swift 2.0中的身体部位设置角度约束。
我尝试在场景编辑器中的IK约束下自动设置它们,但失败了。
我随后在代码中设置了它们:
lowerArmBack.reachConstraints?.lowerAngleLimit = 0
lowerArmBack.reachConstraints?.upperAngleLimit = CGFloat(10)两者都不起作用(使用或不使用CGFloat)。我正在尝试遵循这个教程:http://www.raywenderlich.com/80917/sprite-kit-inverse-kinematics-swift,但自从Swift更新以来,我遇到了一些问题。
从本质上讲,我想限制角度,以防止手臂以360度的角度移动,但这并没有发生。
发布于 2016-01-28 00:06:10
您需要为所需的身体部位设置具有范围的zRotation约束:
let range = SKRange(lowerLimit: CGFloat(0).degreesToRadians(),
upperLimit: CGFloat(160).degreesToRadians())
let rotationConstraint = SKConstraint.zRotation(range)
lowerArmFront.constraints = [rotationConstraint]关于这个教程,我实际上是在做它的更新来解决这个问题。
您也可以通过以下方式添加SKReachConstraint:
lowerLeg.reachConstraints = SKReachConstraints(lowerAngleLimit: CGFloat(-45).degreesToRadians(), upperAngleLimit: 0)
upperLeg.reachConstraints = SKReachConstraints(lowerAngleLimit: CGFloat(-45).degreesToRadians(), upperAngleLimit: CGFloat(160).degreesToRadians())希望它能帮上忙!
https://stackoverflow.com/questions/32684627
复制相似问题