2017-08-09 68 views
0

我使用SCNTransaction移動遊戲對象。更具體地說,當玩家在屏幕上的某個地方點擊時,該物體將移向該目的地。但有時玩家可能會犯錯,所以我想創建一個可以終止所有SCNTransactions的按鈕。如何終止正在進行的SCNTransaction?

但是,與SKAction不同的是,根據Apple開發人員文檔,不能終止SCNTransaction,也不能從外部終止SCNTransaction,甚至不能從外部暫停SCOTransaction。更糟的是,我發現在對象到達目的地之前,它的位置已經改變到了目的地的位置,所以我不能簡單地使用另一個SCNTransaction在知道對象的當前位置之後抵消正在進行的那個。

任何人都可以給我一些提示嗎?非常感謝。

回答

0

SCNTransaction其動畫原理遵循Core Animation和CATransaction之一。要停止動畫,您必須將模型值設置爲當前的演示值。例如:

node.position = node.presentation.position 

但是,如果你熟悉SKAction,想實現你的SceneKit應用同樣的邏輯,你可能想看看SCNAction。他們的工作方式相同。

+0

非常感謝。也許使用SCNAction是一個更好的解決方案。我會試試看。 –

相關問題