1

私は現在、立方体がシーンキットの床に落とされるシーンを持っています。立方体が床を横切って x 軸上を移動するようにアニメーション化しましたが、床に少し沈んでから床の上に再配置されます。

コードの一部を次に示します。

// create floor
SCNFloor *mainFloor = [SCNFloor floor];
SCNNode *floorNode = [SCNNode nodeWithGeometry:mainFloor];
floorNode.position = SCNVector3Make(0.0, -4.0, 0.0);
[myScene.rootNode addChildNode:floorNode];
SCNPhysicsShape *ground = [SCNPhysicsShape shapeWithGeometry:mainFloor options:nil];
SCNPhysicsBodyType kin = SCNPhysicsBodyTypeKinematic;
SCNPhysicsBody *solid = [SCNPhysicsBody bodyWithType:kin shape:ground];
floorNode.physicsBody = solid;
myScene.physicsWorld.gravity = SCNVector3Make(0.0, -9.8, 0.0);

立方体が沈む理由を誰か教えてくれませんか? 理由がわからない場合は、キャラクターが歩くことができる作業フロアのコード例を提供できますか? (できれば目的のcで、必要に応じてswiftから翻訳できます)

4

2 に答える 2

0

ProBlaster のアドバイスを使用して、代わりに [SCNPhysicsBody applyForce] を使用し、問題を解決しました。

于 2016-04-04T01:52:22.847 に答える
0

フロアのカテゴリ ビットマスクとキューブのコリジョン ビットマスクは、次のように (迅速に) 実行できるものと同じにする必要があると思います。

floorNode.physicsBody.categoryBitMask = 3
cubeNode.physicsBody.collisionBitMask = 3
于 2016-04-01T18:24:35.953 に答える