gpt4 book ai didi

ios - 如何在场景包中进行碰撞

转载 作者:搜寻专家 更新时间:2023-11-01 06:48:01 24 4
gpt4 key购买 nike

我正在尝试使两个对象发生碰撞,但未调用“func physicsWorld(world: SCNPhysicsWorld, didBeginContact contact: SCNPhysicsContact)”。

我的代码是,

    let carbonNode = SCNNode(geometry: carbonAtom())
carbonNode.position = SCNVector3Make(-6, 8, 0)

let coneAtomNode = SCNNode(geometry: coneAtom())
pinNode = coneAtomNode

pinNode.physicsBody = SCNPhysicsBody.dynamicBody()
pinNode.physicsBody?.restitution = 0.9;
pinNode.categoryBitMask = 0x4;
pinNode.physicsBody?.collisionBitMask = ~(0x4);

coneAtomNode.position = SCNVector3Make(-6, -15, 0)
scene.rootNode.addChildNode(coneAtomNode)

balloonNode = carbonNode

sceneView.scene = scene
sceneView.scene?.physicsWorld.contactDelegate = self

pinNode.runAction(SCNAction.repeatAction(SCNAction.moveTo(SCNVector3Make(-6, 10+5, 0), duration: 1.5), count: 1), completionHandler: {

})

最佳答案

您不能以编程方式移动“动态”物体(即没有 Action ,没有动画,也没有位置/旋转/比例的手动更新)。您可以使用力移动动态物体,也可以改用 kinematicBody。运动体的行为就像静态体一样,但您可以通过编程方式移动它们。

此外,如果你想获得两个节点之间的物理接触,这两个节点需要有一个 physicsBody。

关于ios - 如何在场景包中进行碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27795502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com