Translate

2017年1月5日木曜日

Unity Input.gyro.userAccelerationでの加速度を視覚化してみた

重力加速度を差っ引いて、自分が動かした加速度だけを
取得できる、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 件のコメント:

コメントを投稿