Ios 在SceneKit中,我们不能在每个位置创建物理实体,这正常吗?
在sceneView,我们有一个大立方体Ios 在SceneKit中,我们不能在每个位置创建物理实体,这正常吗?,ios,swift,scenekit,Ios,Swift,Scenekit,在sceneView,我们有一个大立方体 SCNBox(width: 10, height:10, length: 10, chamferRadius: 0) 我们将球体(半径=1)放置在较大立方体的六个表面上。 球体具有动态物理体 调试器模式在以下情况下处于活动状态: sceneView.debugOptions = [.showPhysicsFields, .showPhysicsShapes] 当我们运行应用程序时,我们可以看到只有球体具有节点位置 SCNVector3(x:0, y:
SCNBox(width: 10, height:10, length: 10, chamferRadius: 0)
我们将球体(半径=1)放置在较大立方体的六个表面上。
球体具有动态物理体
调试器模式在以下情况下处于活动状态:
sceneView.debugOptions = [.showPhysicsFields, .showPhysicsShapes]
当我们运行应用程序时,我们可以看到只有球体具有节点位置
SCNVector3(x:0, y: 0, z: 10.5)
似乎有正文,只有这一个由调试器标记。
同样,只有当一个运动物体接触到这个球体时,它才会做出反应
我们是否缺少了一些东西,为什么其他表面上的球体不能有物理实体
这就是我创建球体的方式
var ball:[SCNSphere] = []
var ballNode:[SCNSNode] = []
var body:[SCNPhysicsBody] = []
let pShape = SCNSphere()
pShape.radius = 1
pShape.segmentCount = 1
for k in 0..<6 {
ball.append(SCNSphere())
ballNode.append(SCNSphere())
ball[k].radius = 1
ball[k].hunt.firstMaterial?.diffuse.contents = UIColor.red
ballNode[k]= SCNNode(geometry:ball[k])
let shape = SCNPhysicsShape(geometry: pShape, options: nil)
body.append(SCNPhysicsBody())
body[k] = SCNPhysicsBody(type: .dynamic, shape: shape)
body[k].isAffectedByGravity = false
body[k].friction = 1
body[k].restitution = 0.1
body[k].angularDamping = 1
ballNode[k].physicsBody = body[k]
let coors = createCoors(index: k)
ballNode.position = SCNVector3(coors.x, coors.y, coors.z)
bigBoxNode.addChildNode(ballNode[k])
}
var-ball:[SCNSphere]=[]
var ballNode:[SCNSNode]=[]
变量主体:[SCNPphysisBody]=[]
设pShape=SCNSphere()
p形状半径=1
pShape.segmentCount=1
对于0中的k..所有节点都可以具有PhysicsBody属性。您可以看到所有6个球体,但只有1个球体发生反应?你能附上一张图片和/或显示PhysicsBody属性吗?我注意到只有球有活跃的物理体,那就是在表面上看摄像机的球。如果我旋转立方体并在移除实体后重新运行上面的代码,则活动球将变为面向摄影机的球????