我在SceneKit中创建了一个SCNNode对象,并在其上添加了一个Physics主体,使用ARKit放置在AR世界中。我试过从代码和Xcode的.scn编辑器创建body。然而,在这两种情况下,物理体都被放置在不同于节点位置的位置。
以下是物理机构的代码:
let dimension: CGFloat = 0.15
let height: CGFloat = 0.3
let boxBodyShape = SCNPhysicsShape(geometry: SCNBox(width: dimension,
height: height,
length: dimension,
chamferRadius: 0),
options: [SCNPhysicsShape.Option.type: SCNPhysicsShape.ShapeType.boundingBox])
let boxBody = SCNPhysicsBody(type: .kinematic, shape: boxBodyShape)
self.physicsBody = boxBody
self.physicsBody?.categoryBitMask = Utilities.CollisionCategoryTree
self.physicsBody?.contactTestBitMask = Utilities.CollisionCategoryAiko
self.physicsBody?.mass = 100.0
self.physicsBody?.friction = 1
self.physicsBody?.restitution = 1
self.physicsBody?.damping = 1
self.physicsBody?.isAffectedByGravity = false
这是非常简单和传统的代码,但是当我将SceneKit与ARKit一起使用时它对我不起作用
当我尝试在对象上创建一个盒形物理体时,我在Xcode中看起来是这样的:
我也试过凸形身体。在凸起形状的情况下,它在物体位置上方创建身体方式。这是截图:
物理机身盒距原点一半。不确定原因是什么。有人遇到过这个问题吗?