关于微信提供的陀螺仪 wx.onGyroscopeChange这个api,你想要手机旋转多少角度,节点就旋转多少角度。官方的文档没有标注单位(直接说结论:rad / ms 弧度每毫秒),官方的示例小程序上的陀螺仪示例倒是有单位,是 “ ° / s ” 度每秒,你转一下手机明显感觉这数值是错的,真实单位是 rad / ms 弧度每毫秒。所以你要给节点setRotation时,得 res.x * deltaTime * 180 / Math.PI 即 速度乘时间 然后再把弧度转换成角度。
但实际上,实现“手机旋转多少角度,节点就旋转多少角度”,陀螺仪多次旋转手机后,积累的误差会变得肉眼可见,所以用加速计或者检测设备方向 那两个api 来实现此功能最好。
但是,因为这三种api都是20ms的回调频率,这就导致节点的旋转看起来有点卡顿,所以你不仅要在回调中setRotation,还要在update中setRotation。
所以使用加速剂或者设备方向这俩api在他俩的回调函数给节点赋值后,然后陀螺仪获取速度在update中给节点赋值
更正一下,正确的单位是rad / s,不是rad / ms 弧度每毫秒