L'objectif est de détecter la distance de déplacement de l'utilisateur par rapport au téléphone. Imaginez dans le scénario le plus simple, le téléphone est à plat sur une table avec le bouton d'accueil face au plafond.iOS: détecter le déplacement du téléphone de l'utilisateur vers la gauche/droite (pas de rotation, mais en mouvement)
Si l'utilisateur glisse le téléphone à gauche/droite le long de la table, comment pouvez-vous détecter le montant qui a été déplacé?
Le code ci-dessous ne semble pas enregistrer les bonnes valeurs:
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)")
}
}
}
Merci! En fait, l'exemple de la table était artificiel, simplifié pour simplifier le problème. Un cas d'utilisation réel sera de tenir le téléphone dans une main avec le pouce sur l'écran, un peu comme la position standard pour jouer à un jeu avec une main. Voulez-vous dire à partir de cette position, ARKit vous permet maintenant de mesurer facilement combien l'utilisateur déplace l'appareil gauche/droite alors que ce n'était pas vraiment pratique avant ARKit? – Crashalot
Oui, je suis assez sûr qu'ARKit peut le faire, et il n'y avait vraiment rien de disponible avant. Je n'ai pas utilisé ARKit moi-même, donc je ne peux pas parler de la facilité d'intégration dans votre code ou de sa précision, ou s'il y a d'autres complications (par exemple c'est laggy, ou fonctionne uniquement avec de bons niveaux de lumière, devient confus si vous l'utilisez sur une scène de rue animée, etc, je ne sais pas) – Columbo
Assez juste, j'espère que vous avez raison ARKit être capable de faire cela! – Crashalot