【问题标题】:Swift SceneKit — physical blocks do not stick to each otherSwift SceneKit——物理块不会相互粘连
【发布时间】:2018-04-22 12:47:54
【问题描述】:

块只是崩溃了。
如何解决这个问题?
初始化块:

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

picture

video

full code

【问题讨论】:

    标签: swift physics scenekit


    【解决方案1】:

    我无法告诉您如何解决它,因为我遇到了完全相同的问题,但我无法解决。然而,当我玩的时候,我发现了一些东西(你可能会觉得有用):

    1. 我在纯 SceneKit 中没有发生同样的问题,因此我认为这是 ARKit 中的一个错误

    2. 必须将带有物理的节点添加到场景的rootNode,否则会发生奇怪的事情(元素相互穿过,重力表现不一致)

    3. 如果您将nil 作为shape 参数传递,SceneKit 将根据节点的几何形状绘制边界框。这对我来说不能正常工作,所以我所做的(使用SceneKit 编辑器)是复制几何体,然后将其设置为边界框的自定义形状(查看所附图像)

    总的来说,我发现SceneKit 中的物理模拟与ARKit 一起使用时非常错误,我花了很多时间“欺骗”它,或多或少地按照我想要的方式工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 2020-11-15
      • 2014-11-08
      • 2017-06-10
      • 2021-04-08
      相关资源
      最近更新 更多