目的は、ユーザーが携帯電話を横に動かす量を検出することです。最も単純なシナリオでは、ホームボタンが天井に面しているテーブルの上に電話機が平らであるとします。iOS:ユーザーの移動電話を左右に検出する(回転しないで、移動する)
ユーザがテーブルに沿って電話機を左右にスライドさせると、移動した量をどのように検出できますか?
以下のコードは、正しい値を登録していないよう:
let motionManager = CMMotionManager()
override func update(_ currentTime: TimeInterval) {
processUserMotion(forUpdate: currentTime)
}
func processUserMotion(forUpdate currentTime: CFTimeInterval) {
// 2
if let data = motionManager.accelerometerData {
// 3
if fabs(data.acceleration.x) > 0.2 {
// 4 How do you move the ship?
print("X Acceleration: \(data.acceleration.x)")
}
if fabs(data.acceleration.y) > 0.2 {
// 4 How do you move the ship?
print("Y Acceleration: \(data.acceleration.y)")
}
if fabs(data.acceleration.z) > 0.2 {
// 4 How do you move the ship?
print("Z Acceleration: \(data.acceleration.y)")
}
}
}
ありがとうございます!実際には、テーブルの例は、問題を単純化するために工夫されています。実際のユースケースでは、片手で携帯電話を持ち、画面上に親指を置いて、片手でゲームをプレイするための標準的な位置に似ています。あなたはこの位置から言っていますか?ARKitでは、ユーザーがデバイスを左/右にどれだけ移動させるかを簡単に測定できますが、ARKitでは実際には実用的ではありませんでした。 – Crashalot
はい、私はかなりARKitがこれを行うことができると確信しています。私は自分自身でARKitを使用していないので、コードに組み込むのがどれほど簡単か、他の合併症があるかどうかについては話すことができません(例えば、遅れているか、あなたが忙しい街の風景などで使っていると混乱してしまいます)私はちょうど知らないです – Columbo
十分に公正な、あなたがこれを行うことができるARKitについて正しいと願っています! – Crashalot