2017-05-26 69 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 
相關問題