如何禁止在SceneKit中旋转节点?
例如,我希望模型(锥形)是动态的,跳跃的和飞行的,但总是垂直定向的?
我在苹果的车辆演示中尝试修复它,这是一个糟糕的解决方案。我也尝试了下面的代码,但模型只是缓慢而且小故障落下
- (void)renderer:(id<SCNSceneRenderer>)aRenderer didSimulatePhysicsAtTime:(NSTimeInterval)time{
_node.rotation = SCNVector4Make(0, 0, 0, 0);
//[_node.physicsBody resetTransform]; // - tried this too
}
...最后我在scenekit手册中找不到任何“allowRotation = NO”。
答案 0 :(得分:6)
而不是SpriteKit中的布尔allowsRotation
标志,SceneKit允许您选择允许身体旋转的方向和数量。请参阅angularVelocityFactor
属性。
这可能比在不同值之间切换质量更好 - 这种方法看起来可能是非预期的行为,因此您可能不想依赖它。
答案 1 :(得分:0)
如果您想混合物理模拟和手动变换,请务必使用&#34; kinematicBody&#34;而不是&#34; dynamicBody&#34;。
答案 2 :(得分:0)
iOS 8.0.2 iPad mini
答案 3 :(得分:-1)
简单的解决方案:
node.physicsBody?.allowsRotation = false