2017-06-18 15 views
0

Appleの新しいARKitでVirtualObjectを作成しようとしています。私はオブジェクトが停止するまで無限に回転させたい。私は、次のような複数のものを試しました:スウィフトでARKitで仮想オブジェクトを回転する方法4

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

...しかし、何も動作していないようです。仮想オブジェクトの設定があり、ボタンを押すとオブジェクトが回転します。
どうすれば実現できますか?

答えて

1

ARKitはレンダリング/表示技術ではありません。 ARKitの主な機能は、あなたが選んだグラフィックテクノロジー(SceneKit、Unity、独自のカスタムエンジンなど)をカメラのフィードの上に簡単にレンダリングできるように設定されているためです。だから、どのようにARコンテンツを描くかアニメーション化するかについての質問は、あなたが使っているディスプレイ技術のどれかに関する質問です。

この場合、SceneKitのように見えます。あなたはアニメーションを行ういくつかの方法を含む、SceneKitの(確かにむしろ疎な)documentationを見ましたか?今年(そして過去の年)からSceneKit WWDC sessio nに添付されたサンプルコードもありますが、それはまったくたくさんありますが、そこには回転アニメーションが連続しています。

+0

ありがとうございました。 ARKitを使用するときに必要なコードが異なるか、通常のSceneKitと同じであるかどうかはわかりませんでした。でもありがとう。 –

0

すべての「従来の」手法では、ARワールドでオブジェクトを回転させることができます。たとえば、CABasicAnimation(repeatCount = .infinity)を使用するか、SCNAction(repeatForeverを使用)を使用できます。停止するには

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") 

:ベローが軸y周りのオブジェクトノードを回転させるための簡単なコードである

node.removeAction(forKey: "myrotate") 
関連する問題