2016-07-18 8 views
1

私は.dae(Collada)ファイルからシーンをレンダリングしています。シーン内には4つのノードがあります。SceneKit - 別のノード内のノードをバウンスする方法(魚の魚の魚)

大きなノードは、奇形の長方形の「ボックス」です。私は他のノードがこのノードの中で魚のような魚のように跳ね返るようにする必要があります。

Iは以下のように設定された矩形のノードを持っています。私の小さいノードが動的体と単純な形状である

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; 

すべてがバウンドし、互いによく衝突します。私の問題は、より小さいノードが大きな「ボックス」ノードの上端だけでバウンスすることです。あたかも箱に蓋があるかのように。私は、小さなボックスに「ボックス」内の空きスペースに入ることができません。だから、小さな「魚」ノードは、目に見えない蓋にぶつかって、ボウルに入ることができず、ちょうど上に横たわっているようです。

私はこれが意味をなさないことを願っています。私の脳はこれを理解しようと揚げられています。

答えて

1

箱の上に「ふた」があります。それはあなたの "ボウル"のような凹型の箱形です。

これを作成するには、ボックスの5辺を作成し、1辺(上部)を開いたままにして、「穴」付きの「ボックス」を作成する必要があります。各辺にはかなりの幅/深さを与えて、より小さなオブジェクトを1つのフレームから次のフレームに単に渡すのではないようにしてください。

+0

ありがとうございました。それが私のやり方です。私はシーンキットが3Dモデルの真の形を使うことを望んでいました。 – mtb

+0

[SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeStatic shape:shape]、shapパラメータをnilに設定するだけです。これにより、sceneKitによって自動的に作成される、より似たようなジオメトリが得られます。 – ooOlly