2015-12-17 1 views
0

Не нашел примеров того, как запускать магнитный датчик с помощью Swift онлайн, поэтому я размещаю пример здесь, так как сам создал его.Есть ли какой-либо триггер магнитного датчика Google Cardboard в примерах классов Swift?

Это проверено на iPhone 6.

+1

Спасибо за ваше сообщение! Пожалуйста, сформулируйте ваше заявление о миссии как вопрос. – joepd

ответ

0

Это простой класс триггер, который я написал. Кажется, он работает неплохо. Приемник для данных магнита.

Использование:

let magnetListener = VRMagnetSensor() 
magnetListener.callback = { type in 
    // will print MAGNETIC SENSOR REPORTED onPress 
    print("MAGNETIC SENSOR REPORTED \(type)") 
} 

А класс - VRMagnetSensor.swift

import Foundation 
import CoreMotion 

public class VRMagnetSensor { 

    let manager = CMMotionManager() 
    var previousMagnetData = (x:0.0, y:0.0, z:0.0) 
    var callback:((type:String) ->())? 

    init() { 

     if manager.magnetometerAvailable && !manager.magnetometerActive { 

      let sensorInterval = NSTimeInterval(0.5) 
      manager.magnetometerUpdateInterval = sensorInterval 
      manager.startMagnetometerUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: { 
       (data, error) in 

       let field = data!.magneticField 

       print("MAGNETIC DATA x \(field.x) y \(field.y) z \(field.z)") 

       if(field.x < self.previousMagnetData.x-30 && self.previousMagnetData.x != -0.0) { 
        dispatch_async(dispatch_get_main_queue()) { 
         self.callback!(type:"onPress") 
        } 
       } 
       self.previousMagnetData = (x:field.x, y:field.y, z:field.z) 
      }) 
     } 
    } 
} 
Смежные вопросы