我正在尝试创建一个应用程序,用户可以在其中堆叠不同的几何形状。在 ARSCNView 中加载的 .scn 文件中,我插入一个静态平面,然后在用户每次点击时,应用程序插入一个动态 SCNNode。
第一个节点被插入到平面上方几英寸处,以复制坠落的物体。然后,每个其他节点都被放在另一个节点之上。
这是应用程序的主要思想;添加3个或4个节点后出现问题,它们之间出现滑动,几乎摇晃,整个结构崩溃。
这是我要插入的节点:
let dimension: CGFloat = 0.075
let cube = SCNBox(width: dimension, height: dimension, length: dimension, chamferRadius: 0.0)
let node = SCNNode(geometry: cube)
node.physicsBody = SCNPhysicsBody(type: SCNPhysicsBodyType.dynamic, shape: nil)
node.physicsBody?.mass = 2.0
node.physicsBody?.friction = 1.0
node.physicsBody?.restitution = 0.01
node.physicsBody?.damping = 0.0
node.physicsBody?.angularDamping = 0.0
node.physicsBody?.rollingFriction = 1.0
node.physicsBody?.allowsResting = true
let insertionYOffset = 0.3
node.position = SCNVector3(hitResult.worldCoordinates.x, hitResult.worldCoordinates.y + Float(insertionYOffset), hitResult.worldCoordinates.z)
我尝试使用这些值,这些是最好的值,但它们不足以创建稳定的 block 结构。
作为一个要求,我需要让方 block 保持动态,它们需要受到重力、风等的影响。
最佳答案
这个问题很可能与一个叫做动态的因素有关,它允许它连续移动,或者可能与物体相互碰撞有关,要解决这个问题,您所要做的就是将碰撞掩码更改为两个不同的数字。
关于ios - ARKit - SCNNode 连续运动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48946846/