gpt4 book ai didi

ios - linearGravityField() 不影响场景 SceneKit 中的物理体

转载 作者:可可西里 更新时间:2023-11-01 01:05:32 24 4
gpt4 key购买 nike

我正在尝试使用 SCNPhysicsField.linearGravityField 对象来仅影响场景中的特定对象。问题是,我似乎无法让它影响任何事情。这是我在 Swift 中的代码示例:

let downGravityCatagory = 1 << 0
let fieldDown = SCNPhysicsField.linearGravityField()
let fieldUp = SCNPhysicsField.linearGravityField()
let fieldNode = SCNNode()

let sceneView = view as! SCNView
sceneView.scene = scene
sceneView.scene!.physicsWorld.gravity = SCNVector3(x: 0, y: 0, z: 0)

fieldDown.categoryBitMask = downGravityCatagory
fieldDown.active = true
fieldDown.strength = 3
fieldNode.physicsField = fieldDown
scene.rootNode.addChildNode(fieldNode)

var dice = SCNNode()
//I then attach geometry here
dice.physicsBody = SCNPhysicsBody(type: SCNPhysicsBodyType.Dynamic, shape: SCNPhysicsShape(geometry: dice.geometry!, options: nil))
dice.physicsBody?.categoryBitMask = downGravityCatagory
scene.rootNode.addChildNode(dice)

即使 Physics Bodies 被分配了与重力场相同的类别 BitMask,它们只是以零 G 漂浮在那里,仅受物理世界重力的影响。

最佳答案

在节点上设置“downGravityCatagory”位掩码:

dice.categoryBitMask = downGravityCatagory;

物理的 categoryBitMask 仅用于物理碰撞。

关于ios - linearGravityField() 不影响场景 SceneKit 中的物理体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31577723/

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