2017-05-26 80 views
0

我有一个适用于iOS的sceneKit应用程序。我有一个连接到SCNNode的SCNPhysicsBody。我将.physicsBody设置为零,对SCNNode进行一些更改,然后将.physicsBody设置为新的SCNPhysicsBody或原始SCNPhysicsBody的副本。无论哪种情况,SCNNode都会将其位置重置为初始位置。如何在不重置SCNNode的位置的情况下重置SCNNode的SCNPhysicsBody?

我该如何重置.physicsBody,并将SCNNode保持在同一位置,以便它继续其轨迹?

回答

0

当您的物理结构影响节点位置时,其原始位置(即分配给节点position属性)保持不变,presentation node位置发生更改。所有转换(旋转/缩放/平移)都是这样工作的。

所以,你可以做一些这样的事情伪代码:

// 1. remember position of presentation node 
var position = node.presentation.position; 
// 2. do some changes on node, physics body, whatever 
// 3. restore position (without losing original node position) 
your_node.presentation.position = position 
// ... or apply presentation position to original position 
your_node.position = position 
相关问题