重力加速度を差っ引いて、自分が動かした加速度だけを
取得できる、Input.gyro.userAcceletionというのを知った
ので、ちょっと試してみた。
以下は、加速度の値100回分をLineRendererで表示したもので、ぐるぐると円状にスマホを回してみました。
以下コード
public class pen : MonoBehaviour {
private List<Vector3> data = new List<Vector3>();
private float lpf = 0.3f;
private Vector3 pos;
void Start () {
if(SystemInfo.supportsGyroscope) {
Input.gyro.enabled = true;
}
}
void Update () {
pos = Input.gyro.userAcceleration * lpf + pos * (1-lpf);
data.Add(pos);
if(data.Count > 100){
data.RemoveAt(0);
}
this.GetComponent<LineRenderer>().numPositions = data.Count;
for(int i=0;i<data.Count;i++) {
this.GetComponent<LineRenderer>().SetPosition(i,data[i]);
}
}
}
うまく使えば、室内自立測位的な事できるかなぁ
0 件のコメント:
コメントを投稿