センサーのサポート
- Sampling Frequency (サンプリング頻度)
- Accelerometer (加速度センサー)
- Gyroscope (ジャイロスコープ)
- GravitySensor (重力センサー)
- AttitudeSensor (姿勢センサー)
- LinearAccelerationSensor (線形加速度センサー)
- MagneticFieldSensor (磁場センサー)
- LightSensor (光センサー)
- PressureSensor (圧力センサー)
- ProximitySensor (近接センサー)
- HumiditySensor (湿度センサー)
- AmbientTemperatureSensor (周囲温度センサー)
- StepCounter (歩数計)
センサーとは、コンテンツが実行されているデバイスの環境特性を測定する InputDevice
です。Unity では現在、iOS と Android でセンサーがサポートされています。Android では、iOS よりも広範囲にわたるセンサーがサポートされます。
ノート: iOS または Android のアプリをエディターでテストするときに、モバイルデバイスからのセンサー入力を使用するには、こちら で説明されている Unity Remote を使用できます。現在、
Accelerometer
、Gyroscope
、GravitySensor
、AttitudeSensor
、およびLinearAccelerationSensor
がサポートされています。
特定のセンサーが存在するかどうかを判定するには、そのセンサーの .current
ゲッターを使用できます。
// ジャイロスコープセンサーデバイスが存在するかどうかを判定します。
if (Gyroscope.current != null)
Debug.Log("Gyroscope present");
他のデバイスとは異なり、センサーはデフォルトで無効になっています。センサーを有効にするには、InputSystem.EnableDevice()
を呼び出します。
InputSystem.EnableDevice(Gyroscope.current);
センサーを無効にするには、InputSystem.DisableDevice()
を呼び出します。
InputSystem.DisableDevice(Gyroscope.current);
センサーが現在、有効かどうかを確認するには、InputDevice.enabled
を使用します。
if (Gyroscope.current.enabled)
Debug.Log("Gyroscope is enabled");
各センサー Device は、そのセンサーによって読み取られるデータを表す単一の Control を実装しています。以下のセンサーが用意されています。
Device | Android | iOS | WebGL | Control | 型 |
---|---|---|---|---|---|
Accelerometer |
○ | ○ | ○ (1) | acceleration |
Vector3Control |
Gyroscope |
○ | ○ | ○ (1) | angularVelocity |
Vector3Control |
GravitySensor |
○ | ○ | ○ (1) | gravity |
Vector3Control |
AttitudeSensor |
○ | ○ | ○ (1) | attitude |
QuaternionControl |
LinearAccelerationSensor |
○ | ○ | ○ (1) | acceleration |
Vector3Control |
MagneticFieldSensor |
○ | × | × | magneticField |
Vector3Control |
LightSensor |
○ | × | × | lightLevel |
AxisControl |
PressureSensor |
○ | × | × | atmosphericPressure |
AxisControl |
ProximitySensor |
○ | × | × | distance |
AxisControl |
HumiditySensor |
○ | × | × | relativeHumidity |
AxisControl |
AmbientTemperatureSensor |
○ | × | × | ambientTemperature |
AxisControl |
StepCounter |
○ | ○ | × | stepCounter |
IntegerControl |
ノート:
- Android および iOS デバイス上の WebGL でのセンサーのサポートは Unity 2021.2 で使用可能です。
サンプリング頻度
センサーは、設定された間隔で継続的にサンプリングを実行します。各センサーのサンプリング頻度の設定または照会を行うには、samplingFrequency
プロパティを使用します。頻度はヘルツ (1 秒あたりのサンプリング数) で表されます。
// ジャイロのサンプリング頻度を取得します。
var frequency = Gyroscope.current.samplingFrequency;
// ジャイロのサンプリング頻度を、1 秒あたり 16 回に設定します。
Gyroscope.current.samplingFrequency = 16;
Accelerometer
(加速度センサー)
加速度センサーは、デバイスの加速度を測定するために使用します。これは、デバイスの移動によってコンテンツを制御する場合に役立ちます。このセンサーは、デバイスで測定された加速度を報告します。加速度は、デバイスの動きと、デバイスに下向きにかかる重力の両方により生じます。これらの値を別々に取得するには、GravitySensor
と LinearAccelerationSensor
を使用できます。値は、Compensate Orientation 設定の影響を受けます。
Gyroscope
(ジャイロスコープ)
ジャイロスコープは、デバイスの角速度を測定するために使用します。これは、デバイスの回転でコンテンツを制御する場合に役立ちます。値は、Compensate Orientation 設定の影響を受けます。
GravitySensor
(重力センサー)
重力センサーは、デバイスにかかる重力ベクトルの方向を特定するために使用します。これは、デバイスの向きでコンテンツを制御する場合に役立ちます。これは通常、ハードウェアの Accelerometer
から線形加速度 (LinearAccelerationSensor
を参照) の影響を減算することで算出されます。値は、Compensate Orientation 設定の影響を受けます。
AttitudeSensor
(姿勢センサー)
姿勢センサーは、デバイスの向きを特定するために使用します。これは、デバイスの回転でコンテンツを制御する場合に役立ちます。値は、Compensate Orientation 設定の影響を受けます。
LinearAccelerationSensor
(線形加速度センサー)
加速度センサーは、デバイスの加速度を測定するために使用します。これは、デバイスの移動によってコンテンツを制御する場合に役立ちます。線形加速度は、重力の影響を除いたデバイスの加速度を表します。これは通常、ハードウェアの Accelerometer
から重力 (GravitySensor
を参照) の影響を減算することで算出されます。値は、Compensate Orientation 設定の影響を受けます。
MagneticFieldSensor
(磁場センサー)
この Input Device は、コンテンツを実行しているデバイスに影響を与える磁場を表します。値は、マイクロテスラ (μT) で表される、X、Y、Z 軸の周囲磁場の測定値です。
LightSensor
(光センサー)
この Input Device は、コンテンツを実行しているデバイスで測定された環境光を表します。値は、SI 単位系のルクスで表されます。
PressureSensor
(圧力センサー)
この Input Device は、コンテンツを実行しているデバイスで測定された大気圧を表します。値は hPa (ミリバール) で表されます。
ProximitySensor
(近接センサー)
この Input Device で、コンテンツを実行しているデバイスとユーザーの近さが測定されます。携帯電話では、通常、ユーザーが電話を耳元に保持しているかどうかを判別するために近接センサーが使用されます。値は、測定距離をセンチメートルで表します。
HumiditySensor
(湿度センサー)
この Input Device は、コンテンツを実行しているデバイスで測定された空気湿度を表します。値は、相対的な周囲空気湿度をパーセントで表します。
AmbientTemperatureSensor
(周囲温度センサー)
この Input Device は、コンテンツを実行しているデバイスで測定された気温を表します。値は摂氏温度で表されます。
StepCounter
(歩数計)
この Input Device は、コンテンツを実行しているデバイスによって計測されたユーザーの歩数を表します。
ノート: iOS/tvOS デバイスの歩数計にアクセスするには、入力設定 で Motion Usage 設定 を有効にする必要があります。