磁带存储Unity的陀螺仪实现
陀螺仪的API参数(Unity)
x:平放为0,⼿机按键倾斜旋转180度数值变化为-0->-1,继续旋转180度为1->0
y:平放为0,⼿机右侧倾斜旋转180度数值变化为-0->-1,继续旋转180度为1->0
z:头对正西⽅向为0,顺时针旋转180度数值变化为-0->-0.7->0.7->1,为什么会瞬间跳跃?继续旋转180度为1->0
x:竖起⼿机屏幕靠近⾝体为0,⼿机右侧倾斜选90度⾓度变化为0->90,继续旋转90度为90->0,继续旋转90度为360->270,继续旋转90度为270->360
y:平放为0,⼿机右侧倾斜旋转旋转⾓度增加,范围0-360度
z:头对正西⽅向为0度,顺时针旋转⾓度增加,范围0-360度
小样机直接上代码(可以直接⽤)
// A code block
using UnityEngine;
using System.Collections;
public class CamGyro : MonoBehaviour
{
private const float lowPassFilterFactor =0.8f;
private Quaternion startQuaternion;
yijing
private Quaternion originalQuaternion;
private int frameCnt =0;
void Start()
{
//设置设备陀螺仪的开启/关闭状态,使⽤陀螺仪功能必须设置为 true
//获取设备重⼒加速度向量会标设计
Vector3 deviceGravity = avity;
//设备的旋转速度,返回结果为x,y,z轴的旋转速度,单位为(弧度/秒)
Vector3 rotationVelocity = ationRate;
//获取更加精确的旋转
Vector3 rotationVelocity2 = ationRateUnbiad;
//设置陀螺仪的更新检索时间,即隔 0.1秒更新⼀次
/
/获取移除重⼒加速度后设备的加速度
张学良公馆Vector3 acceleration = urAcceleration;
}
void Update()
{
frameCnt++;
if(frameCnt >5&& frameCnt <=30)
{
originalQuaternion = ation;
startQuaternion =new Quaternion(-1* attitude.x,
-1* attitude.y,
return;
}
Quaternion currentQuaternion =new Quaternion(-1* attitude.x,-1* attitude.y,
//Quaternion deltaQuaternion = Quaternion.RotateTowards(startQuaternion, currentQuaternion, 180);
//attitude 返回值为 Quaternion类型,即设备旋转欧拉⾓
//ation = Quaternion.ation, new Quaternion(-attitude.x, -attitude.y, attitude.z, Input .gyro.attitude.w), lowPassFilterFactor);
rtQuaternion)* currentQuaternion, lowPassFilter Factor);高空滑翔
}
nba录像回放完整版
}