2017-06-18 91 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")