# シミュレートされたクラス

> Contains information on classes the Device Simulator provides so you can test code that responds to device-specific behavior.

Device Simulator (デバイスシミュレーター) にはシミュレートされたクラスがあり、デバイス固有の動作に反応するコードをデバイスシミュレーターでテストすることができます。

UnityEngine.Device 名前空間には、以下のシミュレートされたクラスがあります。

* [Application](/engine/6000.0/script-reference/unity-engine-device/application.md)
* [Screen](/engine/6000.0/script-reference/unity-engine-device/screen.md)
* [SystemInfo](/engine/6000.0/script-reference/unity-engine-device/system-info.md)

これらのシミュレートされたクラスは、通常の UnityEngine 名前空間のクラスと同じメンバーを持っています。それらは、通常のクラスを使用するコードベースであればどこでも使用できます。パフォーマンスへの影響はなく、リリースビルドで使用できます。

エディターでは、デバイスシミュレーターが [アクティブ](/engine/6000.0/manual/unity-editor/using-the-editor/device-simulator/introduction.md#limitations) になっていると、シミュレートされたクラスは、シミュレートされたデバイスのプラットフォーム固有の動作を模倣します。例えば、[Device.SystemInfo.operatingSystem](/engine/6000.0/script-reference/unity-engine-device/system-info/operating-system.md) は、シミュレートされたデバイスの Android または iOS のバージョンを返します。

ビルドされたアプリケーション、または、デバイスシミュレーターがアクティブでない場合、シミュレートされたクラスは、UnityEngine 名前空間の対応するクラスと同じ動作をします。

シミュレートされたクラスは通常のクラスと同じメンバーを持ちますが、デバイスシミュレーターはすべての動作をシミュレートしているわけではありません。Unity エディターでは、デバイスシミュレーターがシミュレートしないメンバーは、プラットフォーム依存ではない UnityEngine の同等メンバーと同じ動作になります。例えば、デバイスシミュレーターは [Device.Screen.brightness](/engine/6000.0/script-reference/unity-engine-device/screen/brightness.md) をシミュレートしません。これは、このメンバーが [UnityEngine.Screen.brightness](/engine/6000.0/script-reference/unity-engine/screen/brightness.md) と同じエディター内動作 (常に `1` を返します) をすることを意味します。デバイスシミュレーターがシミュレートするメンバーについては、以下の API ドキュメントを参照してください。

* [Device.Application](/engine/6000.0/script-reference/unity-engine-device/application.md)
* [Device.Screen](/engine/6000.0/script-reference/unity-engine-device/screen.md)
* [Device.SystemInfo](/engine/6000.0/script-reference/unity-engine-device/system-info.md)

## シミュレートされたクラスを使用するためにスクリプトを更新する

既存のコードを変換して UnityEngine.Device 名前空間のクラスを使用したい場合は、[エイリアスディレクティブ](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-directive) を使用すると効率的です。 例:

```
using Screen = UnityEngine.Device.Screen;
using Application = UnityEngine.Device.Application;
using SystemInfo = UnityEngine.Device.SystemInfo;
```

こうすることで、ファイル全体でどのクラスを使用するかを変更することができ、すべての API 呼び出しを変更する必要はありません。
