この記事でのバージョン
Unity 2022.2.2f1
はじめに
UnityにはGameViewでセーフエリアやノッチも含めた色々な端末をシュミレート出来る
公式機能Device Simulatorというものがあり、一昔前は導入の必要がありましたが、
最近はデフォルトで入ってるので、より簡単に使う事出来るようになりました。
今回はこのDevice Simulatorを使っているかどうかの判定と、
何のデバイスやOSを使ってるのか取得する方法の紹介です!
UnityEngine.Device
まず、デバイスやOSの情報はUnityEngine.SystemInfoから取得出来ますが、
これはSimulatorを考慮しておらず、実際の端末の情報しか取得出来ません。
Debug.Log($"実行しているデバイス : {UnityEngine.SystemInfo.deviceModel}"); Debug.Log($"実行しているOS : {UnityEngine.SystemInfo.operatingSystem}");
なので、Simulator込みの情報を得るにはUnityEngine.Deviceを使います。
例えばデバイスやOSを取得してみると以下のような感じに。
Debug.Log($"実行しているデバイス : {UnityEngine.Device.SystemInfo.deviceModel}"); Debug.Log($"実行しているOS : {UnityEngine.Device.SystemInfo.operatingSystem}");
なお、Device Simulatorを使ってない時は実際の端末の情報が取得出来ますし、
実機(リリースビルド)でもそのまま使えるので、基本的にはこれだけ使えばOKです。
また、SystemInfoの値を比較すればDevice Simulatorを使ってるかの判定も行えます。
Debug.Log($"Simulatorを使っているか : {UnityEngine.SystemInfo.deviceModel != UnityEngine.Device.SystemInfo.deviceModel}");
ちなみにSystemInfoだけでなく、Device.ScreenやDevice.Applicationもあります。