我有一个带动态物理体的立方体和一个带运动学物理体的平面。当我把立方体放在平面上时,它会掉落并弹跳。
问题是:当立方体很小或很轻时,它会穿过平面。例如,0.1*0.1*0.1 的立方体可以正常工作,但 0.05*0.05*0.05 的就不行了。在这种情况下,我仍然会收到物理体接触通知。
以下是我创建几何图形的代码:
问题是:当立方体很小或很轻时,它会穿过平面。例如,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
的值吗? - James P