Ios SceneKit-如何在另一个节点内反弹节点(鱼缸中的鱼)
我正在从.dae(Collada)文件渲染场景。在场景中,我有4个节点 大节点是一个奇数形状的矩形“长方体”。我需要其他节点像鱼缸里的鱼一样在这个节点内反弹 我将矩形节点设置如下:Ios SceneKit-如何在另一个节点内反弹节点(鱼缸中的鱼),ios,objective-c,scenekit,collada,Ios,Objective C,Scenekit,Collada,我正在从.dae(Collada)文件渲染场景。在场景中,我有4个节点 大节点是一个奇数形状的矩形“长方体”。我需要其他节点像鱼缸里的鱼一样在这个节点内反弹 我将矩形节点设置如下: NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys: SCNPhysicsShapeTypeKey, SCNPhysicsShapeTypeConcavePolyhedron
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
SCNPhysicsShapeTypeKey, SCNPhysicsShapeTypeConcavePolyhedron, nil];
SCNPhysicsShape *shape = [SCNPhysicsShape shapeWithNode:self.box1 options:dictionary];
SCNPhysicsBody *body = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeStatic shape:shape];
self.box1 = [self.scene.rootNode childNodeWithName:@"box1" recursively:NO];
self.box1.physicsBody = body;
我的较小节点只是带有动态实体的简单形状
所有的东西都会弹来弹去,相互碰撞。。我的问题是,较小的节点只会在较大的“长方体”节点的顶部反弹。好像盒子上有盖子似的。我无法让较小的节点进入“框”中的空白区域。因此,就好像较小的“鱼”节点无法进入碗中,因为它们撞在看不见的盖子上,只是躺在上面
我希望这是有道理的。。想弄明白这一点,我的脑子都快炸了。盒子上确实有一个“盖子”。它是一个凸面的盒子,没有凹面,这就是你所需要的,一个凹面的盒子形状就像你的“碗”
要创建此对话框,您需要创建一个带有“孔”的“盒子”,方法是创建一个盒子的五个侧面,并保持一侧(顶部)打开。确保为每一面提供相当大的宽度/深度,以便较小的对象不会简单地从一帧传递到下一帧 谢谢。这就是我最后做的。我希望scenekit可以使用3D模型的真实形状。[SCNPphysisBody Body WithType:SCNPphysisBody TypeStatic shape:shape],只需将shap参数设置为零。这将得到一个更相似的几何体,由sceneKit自动创建。