Unity SystemInfo 教學

您使用 Unity 開發的遊戲或應用程式需要查詢系統或硬體資訊嗎?使用 SystemInfo 可輕鬆達成 [ Scripting API ]

Use this class to figure out capabilities of the underlying platform and hardware. 例如您可以檢查支援何種 RenderTexture  ( SupportsRenderTextureFormat ) 或是有多少可用的 CPU 執行緒 ( processorCount ) 等。

此教學是科勁數位開發 VR 中控系統,提供查詢 VR 裝置的剩餘電量,以及測試 Unity 鎖機台功能,分享一些開發經驗。

適用於 Android 行動裝置的 APK 檔 [ CG.SystemInfo.apk ]

適用於 Windows 系統的 EXE 檔 [ SystemInfomation.zip ] ← 啟用時將複製 SystemInfo.deviceUniqueIdentifier 到剪貼簿

 

新增一個 UI Text 文字物件,命名為 "SystemInfomation" 用於顯示系統資訊,物件名稱若有不同,注意名稱的對應。

基本上這些資訊是不太會變動的,除了電池的充電狀態與剩餘電量,所以透過 InvokeRepeating 每分鐘更新。

 

這是 Kelvin 使用的一台舊款桌上型電腦,已經服役有 10 年,看看執行 SystemInfo 顯示的系統資訊吧!

因為是桌機,沒有內建電池 Battery Status = Charging 而 Battery Level = -1 並不顯示電池剩餘電量。

顯卡是 NVIDIA GTX-1060 沒有支援光跡追蹤,當然桌上型電腦也不支援震動功能。

 

再發佈 APK 安裝到 SAMSUNG S9 手機測試看看,不過 UI 位置有點跑掉了!

執行測試時,手機的剩餘電量為 7% 可以看到 Battery Level = 0.07

開始充電,注意 Battery Status = Charging 代表充電中,而 Battery Level = 0.12 則是已經充到 12%

 

若您有興趣研究,這裡也提供專案壓縮檔 [ 下載 ] ( 35MB )

 

補充:若需要將 Device Unique Identifier 複製到剪貼簿,可使用以下程式碼

void Start() { GUIUtility.systemCopyBuffer = SystemInfo.deviceUniqueIdentifier; }

 

測試範例