方 block 会分崩离析。
如何解决这个问题?
初始化 block :
var boxNode = SCNNode(geometry: SCNBox(width: 0.75, height: 0.15, length: 0.25, chamferRadius: 0))
boxNode.position = SCNVector3(x: x1, y: y, z: z1)
boxNode.geometry?.firstMaterial = SCNMaterial()
boxNode.geometry?.firstMaterial?.diffuse.contents = UIImage(named: "wood.jpg")
boxNode.physicsBody = SCNPhysicsBody(type: .dynamic, shape: nil)
boxNode.eulerAngles.y = Float(Double.pi / 2) * rotation
boxNode.physicsBody?.friction = 1
boxNode.physicsBody?.mass = 0.5
boxNode.physicsBody?.angularDamping = 1.0
boxNode.physicsBody?.damping = 1
最佳答案
我无法告诉您如何解决它,因为我有完全相同的问题,但我无法解决。然而,当我四处游玩时,我发现了一些事情(你可能会发现它们很有用):
我在纯 SceneKit 中没有发生同样的问题,因此我认为这是
ARKit
中的错误
必须将具有物理特性的节点添加到场景的
rootNode
中,否则会发生奇怪的事情(元素相互穿过,重力行为不一致)如果您将
nil
作为shape
参数传递,SceneKit
将根据节点的几何形状绘制边界框。这对我来说效果不佳,所以我所做的(使用SceneKit
编辑器)是复制几何图形,然后将其设置为边界框的自定义形状(查看附件图片)
总的来说,当与 ARKit
一起使用时,我发现 SceneKit
中的物理模拟非常错误,我花了很多时间“欺骗”它来工作更多 - 或者- 更少我希望它如何工作。
关于Swift SceneKit——物理 block 不会相互粘连,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47203307/