我目前正在 ARKit 中制作 Scenekit 游戏。
我有两个动态 SCNNode,当它们彼此接触时,它们会相互通过。
我已经将每个节点的物理主体的 collisionBitMask 设置为彼此包含,如下所示:
ballNode.physicsBody?.collisionBitMask = BodyType.floor.rawValue | BodyType.opponent.rawValue
我还将每个节点的物理主体设置为动态的,以便节点受到力和碰撞的影响。
当我调用physicsWorld(_ world: SCNPhysicsWorld, didBegin contact: SCNPhysicsContact)
时,它确实正确地注册了两个节点之间存在冲突,但节点继续相互通过。
当我使其中一个节点运动而不是动态时,它会正确地阻塞另一个节点,并且它们不会相互通过。但是当它是运动学的时候,它并没有对我应用它的力量作出反应,所以我想让它保持动态。
是否有可能让两个动态节点相互碰撞而不通过?
1 回答
我认为“physicsShape”不见了,所以宣称为“nil”
代替:
我希望有帮助,请发布代码。
形状创建的替代方法是init(node:options:)