2017-06-18 83 views
0

我想在Apple的新ARKit中旋轉虛擬對象。我希望對象無限旋轉直到停止。我已經嘗試了多種東西,例如:如何使用Swift 4在ARKit中旋轉虛擬對象

angleDegrees = Int(((object.eulerAngles.y) * 180)/Float.pi) % 360 
object.eulerAngles.y = initialObjectAngle + amoutnToSpinPerSpin 

......但似乎沒有任何工作。我有虛擬對象設置,並按下按鈕,我想旋轉對象。
我該如何做到這一點?

回答

1

請記住,ARKit不是一種渲染/顯示技術。 ARKit爲你做的主要事情就是設置一些東西,以便你選擇的任何圖形技術--SceneKit,Unity,你自己的定製引擎等 - 都可以很容易地在攝影機的頂部渲染,從而獲得良好的AR體驗。因此,關於如何繪製或製作AR內容的任何問題都是關於您使用的任何顯示技術的問題。

在這種情況下,看起來像SceneKit。你有沒有看過SceneKit的(0123雖然相當稀疏)documentation,其中包括幾種做動畫的方法?從今年(以及過去幾年)開始,SceneKit WWDC sessio也附帶示例代碼,這些代碼展示了......很多東西,但是在那裏有連續的旋轉動畫。

+0

謝謝。我不確定在使用ARKit時是否需要不同的代碼,或者是否與通常的SceneKit相同。但是,謝謝。 –

0

所有「傳統」技術都可以旋轉AR World中的對象。例如,您可以使用CABasicAnimation(with repeatCount = .infinity),或者您可以使用SCNAction(with repeatForever)。貝婁是簡單的代碼來繞Y軸的對象節點:

let action = SCNAction.rotateBy(x: 0, y: CGFloat(2 * Double.pi), z: 0, duration: 10) 
let repAction = SCNAction.repeatForever(action) 
node.runAction(repAction, forKey: "myrotate") 

要停止:

node.removeAction(forKey: "myrotate")