我有一个项目,想获取设备相对于重力的旋转和相对于起点的平移,基本上是获取设备的“跟踪”数据。我计划制作一个三维点来模拟我后来从设备记录的数据。为了实现这个目标,我认为最好使用场景工具包,这样我就可以像记录数据一样在三维中看到事物。目前,我一直在尝试让飞船旋转,以便它始终看起来像是遵循重力(就像在地面上一样),无论设备旋转如何。我想一旦我掌握了这个技巧,将把它应用到一个点上。所以我写了下面的代码:
当您只运行其中一个旋转线时,一切都很完美。它在该轴上的行为是正确的。但是,当我同时进行三个轴时,它变得混乱,并且表现远非预期,出现抖动等问题。
我想问的是: 有人知道如何修复上面的代码,使飞船无论朝向如何都保持“直立”吗?
if let attitude = motionManager.deviceMotion?.attitude {
print(attitude)
ship.eulerAngles.y = -Float(attitude.roll)
ship.eulerAngles.z = -Float(attitude.yaw)
ship.eulerAngles.x = -Float(attitude.pitch)
}
当您只运行其中一个旋转线时,一切都很完美。它在该轴上的行为是正确的。但是,当我同时进行三个轴时,它变得混乱,并且表现远非预期,出现抖动等问题。
我想问的是: 有人知道如何修复上面的代码,使飞船无论朝向如何都保持“直立”吗?