【发布时间】:2017-12-10 10:13:24
【问题描述】:
我有一个具有动态物理实体的立方体和一个具有运动物理实体的平面。当我将一个立方体放在平面上方时,它会落到平面上并且预计会反弹。
问题是:当立方体很小或很轻时,它只是通过平面。例如,立方体有 0.1*0.1*0.1 工作正常但 0.05*0.05*0.05 很烂。在这个如果我仍然收到身体接触通知。
这是我创建几何的代码:
//cube
//when dimension is 0.1 everything is fine
float dimension = 0.05;
SCNBox *cube = [SCNBox boxWithWidth:dimension height:dimension length:dimension chamferRadius:0];
cube.materials = @[material];
SCNNode *node = [SCNNode nodeWithGeometry:cube];
node.physicsBody = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeDynamic shape:nil];
node.physicsBody.mass = 1;
node.physicsBody.categoryBitMask = phsicBodyCategoryCube;
node.physicsBody.collisionBitMask = phsicBodyCategoryPlane;
node.physicsBody.contactTestBitMask = phsicBodyCategoryPlane;
//plane
self.planeGeometry = [SCNBox boxWithWidth:100 height:0.01 length:100 chamferRadius:0
plane.physicsBody = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeKinematic
shape: [SCNPhysicsShape shapeWithGeometry:self.planeGeometry options:nil]];
plane.physicsBody.categoryBitMask = phsicBodyCategoryPlane;
plane.physicsBody.collisionBitMask = phsicBodyCategoryCube;
plane.physicsBody.contactTestBitMask = phsicBodyCategoryCube;
【问题讨论】:
-
您尝试过更改
physicsWorld.timeStep的值吗? -
不,我没有改过。