我发现在SceneKit中,collada物体的联合旋转有一种奇怪的行为。
想象一下,我使用这个代码来制作旋转的桌子(用cheeta3d制作的复杂的表格办公桌):
SCNScene *heroScene = [SCNScene sceneNamed:@"scene.dae"];
b = [heroScene.rootNode childNodeWithName:@"desk" recursively:YES];
b.physicsBody = [SCNPhysicsBody dynamicBody];
b.physicsBody.physicsShape=[SCNPhysicsShape shapeWithNode:b options:@{SCNPhysicsShapeTypeKey:SCNPhysicsShapeTypeConcavePolyhedron,SCNPhysicsShapeKeepAsCompoundKey:@YES}]; //**HERE we need YES only, if NO it is not rotating**!
[scene.rootNode addChildNode:b];
SCNPhysicsHingeJoint *joint = [SCNPhysicsHingeJoint jointWithBody:b.physicsBody axis:SCNVector3Make(0,1,0) anchor:SCNVector3Make(0,5,0)];
[scene.physicsWorld addBehavior:joint];看看这里的注释//,我们只需要是,如果不是,它不是旋转的!
我检查了所有病例,所有关节。SCNPhysicsShapeKeepAsCompoundKey肯定是肯定的,尽管我认为它在这里并不那么重要。
为什么会这样呢?
发布于 2015-04-10 15:33:45
SCNPhysicsShapeKeepAsCompoundKey默认为YES。据我所知,它关闭了物理物体的“flattenedCone”版本。最有可能的是,当铰链连接到模型的一个部分,而不是整个模型时,你的模型中有一些东西会阻止它旋转。
https://stackoverflow.com/questions/26711562
复制相似问题