加速度センサ (Input.acceleration)
加速度センサからの入力を取得するには、Input.acceleration プロパティを参照します。
Vector3
型で、X/Y/Z 軸の加速度を -1.0 〜 +1.0 の範囲で取得できます。
Vector3 accel = Input.acceleration;
次の例では、Update()
のタイミングで加速度を読み取り、画面上のテキストで X, Y, Z 各軸の加速度を表示しています。
![/p/m6hs3dn/img-001.png](../../p/m6hs3dn/img-001_hud415cf32d97e64187ea219f5bcacd953_36488_400x0_resize_box_3.png)
using UnityEngine;
public class Sample : MonoBehaviour {
private Vector3 m_accel;
void Update() {
m_accel = Input.acceleration;
}
private void OnGUI() {
var rect = new Rect(30, 30, 500, 50);
GUI.skin.label.fontSize = 30;
GUI.Label(rect, string.Format("X={0:F2}, Y={1:F2}, Z={2:F2}",
m_accel.x, m_accel.y, m_accel.z));
}
}
ジャイロスコープ (Input.gyro)
ジャイロスコープからの入力を取得するには、Input.gyro プロパティを参照し、Gyroscope オブジェクトを取得します。
Gyroscope gyro = Input.gyro;
Gyroscope
の機能を使用するには、enabled
プロパティを true
に設定しておく必要があります。
Input.gyro.enabled = true;
Gyroscope
オブジェクトからは、次のような値を取得できます。
Gyroscope.attitude
… デバイスの傾き具合 (Quaternion)Gyroscope.rotationRate
… デバイスの回転率 (Vector3)
attitude
プロパティは、デバイスの傾きを Quaternion
で取得できるので、そのままゲームオブジェクトの transform.rotation
プロパティに設定してやれば、デバイスの傾きとオブジェクトの傾きを一致させることができます。
次の例では、デバイスの傾き具合と回転率を画面上に表示しています。 また、傾きに応じて、スクリプトをアタッチしたオブジェクトを回転させています。
![/p/m6hs3dn/img-002.png](../../p/m6hs3dn/img-002_hua090c58305af2a36b073689e707c793a_188883_400x0_resize_box_3.png)
using UnityEngine;
public class Sample : MonoBehaviour {
private Gyroscope m_gyro;
private void Start() {
Input.gyro.enabled = true;
}
void Update() {
m_gyro = Input.gyro;
transform.rotation = m_gyro.attitude;
}
private void OnGUI() {
var rect1 = new Rect(30, 30, 600, 50);
var rect2 = new Rect(30, 60, 600, 50);
GUI.skin.label.fontSize = 30;
GUI.Label(rect1, "attitude=" + m_gyro.attitude);
GUI.Label(rect2, "rotationRate=" + m_gyro.rotationRate);
}
}