使用手機陀螺儀,可以獲取手機的3D姿態,這在開發中是很有用的。當然現在的手機內置的陀螺儀都是比較廉價的,精度不高,但是作為實驗設備看看效果還是可以的。本文將給出調用手機陀螺儀的簡單方法。
首先,我們需要在場景中添加大量方塊,作為觀察對象。
控制陀螺儀的腳本:
using UnityEngine;
using System.Collections;
public class gyroscope : MonoBehaviour {
bool draw = false;
bool gyinfo;
Gyroscope go;
void Start()
{
gyinfo = SystemInfo.supportsGyroscope;
go = Input.gyro;
go.enabled = true;
}
void Update()
{
if (gyinfo)
{
Vector3 a = go.attitude.eulerAngles;
a = new Vector3(-a.x, -a.y, a.z); //直接使用讀取的歐拉角發現不對,於是自己調整一下符號
this.transform.eulerAngles = a;
this.transform.Rotate(Vector3.right * 90, Space.World);
draw = false;
}
else
{
draw = true;
}
}
void OnGUI()
{
if (draw)
{
GUI.Label(new Rect(100, 100, 100, 30), "啟動失敗");
}
}
}
該腳本綁定到主攝像機上,發布成apk文件,安裝到帶有陀螺儀的手機就可以了。運行后會看到,當手機位姿變化時,方塊也會隨着變化。但是手機陀螺儀會有少許漂移。當手機不動時候,場景中的方塊也許會有少量移動。
---------------------
原文:https://blog.csdn.net/zzlyw/article/details/53219928