2017-01-17 5 views
0

Я реализую приложение AR на платформе iOS с SceneKit. Я хочу, чтобы мой объект вращался, а затем передвигался. Для стороны мобильного вращения я обнаружил, что есть параметр quaternion под классом , но я не уверен, как использовать этот параметр для поворота объекта, загруженного в сцену. Есть идеи?Как использовать данные датчика для воздействия на объект в SceneKit?

+0

Показать Ваш код. Показать скриншот. Что вы хотите увидеть вместо этого? –

ответ

1
let motionManager = CMMotionManager() 
motionManager.deviceMotionUpdateInterval = 1.0/60.0 
if motionManager.isDeviceMotionAvailable { 
    motionManager.startDeviceMotionUpdates(to: OperationQueue.main, withHandler: { (devMotion, error) -> Void in 
     //change the left camera node euler angle in x, y, z axis 
     cameraNode.eulerAngles = SCNVector3(
      -Float((devMotion?.attitude.roll)!) - Float(M_PI_2), 
      Float((motionManager.deviceMotion?.attitude.yaw)!), 
      -Float((motionManager.deviceMotion?.attitude.pitch)!) 
     ) 
    })} 

Я попытался это с Playground приложение в IPad.

+0

Позвольте мне следовать вашей идее, чтобы попробовать объект. – OtakuFitness

+0

Недавно я попытался, и он будет работать до тех пор, пока я выясню, как использовать метод обновления в SceneKit (например, метод обновления Unity). В противном случае объект не будет двигаться непрерывно. – OtakuFitness

+0

В конце концов я сделал self.arrow.orientation = SCNQuaternion (-CGFloat ((motionManager.deviceMotion? .attitude.quaternion.x)!), -CGFloat ((motionManager.deviceMotion? .attitude.quaternion.y)!), -CGFloat ((motionManager.deviceMotion? .attitude.quaternion.z)!), CGFloat ((motionManager.deviceMotion? .attitude.quaternion.w)!)) для достижения моей цели. – OtakuFitness

0

Я попытался с помощью сердечника Motion, но то, что я делаю, это повернуть scnCamera

+0

На самом деле я не хочу поворачивать камеру, вращая объект, что я хочу. Но не могли бы вы рассказать мне, как вы поворачиваете свою камеру? – OtakuFitness