gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 14:12:39 25 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)

尽管物理体被分配了与重力场相同的类别BitMask,但它们只是以零重力漂浮在那里,仅受物理世界重力的影响。

最佳答案

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

dice.categoryBitMask = downGravityCatagory;

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

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

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