次のように作成された childNode として SCNNode を持つノード (nodeCollection) があります。
let boxGeo = SCNBox(width: 1, height: 1, length: 1, chamferRadius: 0.0)
let node = SCNNode(geometry: boxGeo)
node.physicsBody = SCNPhysicsBody.staticBody()
また、次のように redbox ノードを作成しています。
let redBox = SCNNode()
redBox.geometry = SCNBox(width: 0.5, height: 0.5, length: 0.5, chamferRadius: 0.1)
redBox.geometry?.firstMaterial?.diffuse.contents = UIColor.redColor()
redBox.position = SCNVector3Make(0, 1, -2)
redBox.physicsBody = SCNPhysicsBody.dynamicBody()
次に、以下のコードを実行してノードを回転させます
let rotateAction = SCNAction.rotateByAngle(CGFloat(M_PI_2), aroundAxis: SCNVector3Make(0, 0, 1), duration: 0.15)
rotateAction.timingMode = .EaseInEaseOut
nodeCollection.runAction(rotateAction)
次に、nodeCollection と redBox の両方を childNodes として SCNScene に追加します。
しかし、nodeCollection で回転を実行するとわかるように、redBox の物理は保持されません。 赤いボックスが停止して青いボックスの上に置かれるときに、赤いボックスがシーンにドロップされると、物理が機能します。
青いボックスが回転したときに redBox を突き抜けないようにするにはどうすればよいですか?