本日はUnityの小ネタ枠です。
Unityのスクリプトで実行環境のOSファミリを識別する方法です。
OSファミリを参照する
UnityではSystemInfo.operatingSystemFamilyを参照することで現在の実行環境のOSファミリを取得できます。
docs.unity3d.com
Windows,MacOS,Linuxの3種類のOSファミリを識別できます。
デスクトップ以外のすべてのプラットフォームではOperatingSystemFamily.Otherが返されます。
| 識別子 | 説明 |
|---|---|
| MacOSX | macOSオペレーティングシステム |
| Windows | Windowsオペレーティングシステム |
| Linux | Linuxオペレーティングシステム |
| Other | 他のカテゴリに該当しないオペレーティングシステム |
サンプルスクリプト
実行環境のOSファミリを取得してそれに応じたテキストを返す以下のサンプルスクリプトを作成しました。
・OperatingSystemFamilyTest.cs
using TMPro; using UnityEngine; public class OperatingSystemFamilyTest : MonoBehaviour { [SerializeField] private TMP_Text systemInfoText; void Start() { // 現在の実行環境のOSのファミリーを取得する OperatingSystemFamily osFamily = SystemInfo.operatingSystemFamily; // OSのファミリーに応じて、適切なメッセージを表示する switch (osFamily) { case OperatingSystemFamily.Windows: systemInfoText.text = "OS: Windows"; break; case OperatingSystemFamily.MacOSX: systemInfoText.text = "OS: MacOSX"; break; case OperatingSystemFamily.Linux: systemInfoText.text = "OS: Linux"; break; default: systemInfoText.text = "OS: Unknown"; break; } } }
エディター上でスクリプトを実行すると実行環境のOSファミリを取得してメッセージが切り替わります。
