Translate

2017年1月6日金曜日

Unity スマホのGyroを使ってカメラ目線を回してみた

以前作ったダルマ落としのカメラ目線をジャイロ使って
360度方向から見えるようにしてみた


スマホを手で持って、方向変えながら見ています




 
以下カメラ軸コード(カメラが月で軸が地球の関係のオブジェクト)
 
決して良いコードじゃないですが、参考までに。
画面タッチすると、そこを基準にして視点リセットします。

 
public class cam : MonoBehaviour {
    private Quaternion gyroini;
    private Quaternion gyro;
    // Use this for initialization
    void Start () {
        if(SystemInfo.supportsGyroscope) {
            Input.gyro.enabled = true;
        }
    }
    void Awake() {
        gyroini = Input.gyro.attitude;
        gyro = gyroini;
        gyroini = Quaternion.Euler(90, 0, 0) * (new Quaternion(-gyro.x,-gyro.ygyro.zgyro.w));
    }

    // Update is called once per frame
    void Update () {
        gyro = Input.gyro.attitude;
        gyro = Quaternion.Euler(90, 0, 0) * (new Quaternion(-gyro.x,-gyro.ygyro.zgyro.w));
        this.transform.localRotation = Quaternion.Inverse(gyroini) * gyro;   

        if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began) {
            gyro = Input.gyro.attitude;
            gyroini = Quaternion.Euler(90, 0, 0) * (new Quaternion(-gyro.x,-gyro.ygyro.zgyro.w));
        }
    }
}





※StartやAwakeだとまだ、ジャイロ動いてない感です



0 件のコメント:

コメントを投稿