Unity SystemInfo 教學

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

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

分享本教學的起源是因為 Kelvin 幫客戶開發 VR 中控系統,希望能查詢每一台 VR 設備的剩餘電量並回傳到主控端。

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

適用於 Oculus Quest 裝置的 APK 檔 [ 準備中 ]

 

新增一個 UI Text 文字物件,命名為 "SystemInfomation" 用於顯示系統資訊,物件名稱若自行修改,注意程式碼的對應。

建立 C# 腳本,程式碼如下:

基本上這些資訊是不太會變動的,除了電池的充電狀態與剩餘電量,所以透過 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 )