Device Simulator (デバイスシミュレーター) にはシミュレートされたクラスがあり、デバイス固有の動作に反応するコードをデバイスシミュレーターでテストすることができます。
UnityEngine.Device 名前空間には、以下のシミュレートされたクラスがあります。
これらのシミュレートされたクラスは、通常の UnityEngine 名前空間のクラスと同じメンバーを持っています。それらは、通常のクラスを使用するコードベースであればどこでも使用できます。パフォーマンスへの影響はなく、リリースビルドで使用できます。
In the Editor, when the Device Simulator is active, the simulated classes mimic the platform-specific behaviors of the simulated device; for example, Device.SystemInfo.operatingSystem returns the Android or iOS version of the simulated device.
ビルドされたアプリケーション、または、デバイスシミュレーターがアクティブでない場合、シミュレートされたクラスは、UnityEngine 名前空間の対応するクラスと同じ動作をします。
シミュレートされたクラスは通常のクラスと同じメンバーを持ちますが、デバイスシミュレーターはすべての動作をシミュレートしているわけではありません。Unity エディターでは、デバイスシミュレーターがシミュレートしないメンバーは、プラットフォーム依存ではない UnityEngine の同等メンバーと同じ動作になります。例えば、デバイスシミュレーターは Device.Screen.brightness をシミュレートしません。これは、このメンバーが UnityEngine.Screen.brightness と同じエディター内動作 (これは常に 1
を返します) をすることを意味します。デバイスシミュレーターがシミュレートするメンバーについては、以下の API ドキュメントを参照してください。
既存のコードを変換して UnityEngine.Device 名前空間のクラスを使用したい場合は、エイリアスディレクティブ を使用するのと効率的です。以下はその例です。
using Screen = UnityEngine.Device.Screen;
using Application = UnityEngine.Device.Application;
using SystemInfo = UnityEngine.Device.SystemInfo;
こうすることで、ファイル全体でどのクラスを使用するかを変更することができ、すべての API 呼び出しを変更する必要はありません。