我的 iOS 应用中有 Core Motion 管理器:
motionManager = [[CMMotionManager alloc] init];
motionManager.deviceMotionUpdateInterval = 1.0 / 60.0;
if ([motionManager isDeviceMotionAvailable]) {
[motionManager startDeviceMotionUpdates];
}
在更新方法中(我使用的是 cocos3d,但没关系)我有这个:
-(void) updateBeforeTransform:(CC3NodeUpdatingVisitor *)visitor
{
if (motionManager.deviceMotionActive)
{
CMDeviceMotion *deviceMotion = motionManager.deviceMotion;
CMAttitude *attitude = deviceMotion.attitude;
NSLog(@"%f, %f, %f", attitude.yaw, attitude.pitch, attitude.roll);
}
}
我把设备放在桌子上,开始观察偏航、俯仰和横滚值,偏航一直在变化!它在几分钟内改变了大约 10 度,这在我的应用程序中是绝对不允许的。这种变化的原因是什么,我该如何避免呢?我开始认为它的发生是因为地球自转,但速度太快了:)
提前致谢!