跳至正文
繁

ReLayer Floating UI壓力測試:忙碌戰鬥畫面中的效能

介紹開發中的ReLayer Floating UI,以及我們在Android模擬器壓力測試中的發現。

畫面忙碌時,Floating UI還能跟上戰鬥嗎?我們在ReLayer範例中快速移動鏡頭和角色、切換主題並密集顯示數字。這裡分享在Android模擬器上進行的30秒測試結果。

ReLayer Floating UI壓力測試:忙碌戰鬥畫面中的效能

畫面忙碌時會怎樣?

我們讓開發中的範例連續執行30秒:快速要求切換主題、改變鏡頭、移動角色、密集顯示數字,最後將這些情況同時疊加。數字密集的兩個階段以每秒1,000個顯示事件為目標;這些是顯示測試值,不是實際遊戲傷害。

數字共用128個同時顯示的欄位。欄位滿時,新事件會取代舊數字,因此每秒1,000個事件不代表同時顯示1,000個數字。計時前我們預先準備了主題快取。

Unity 2022.3與原生x86_64 Android模擬器的1080p連續30秒測試,主題快取已預熱。影格率會波動;這不是實體裝置測試。

結果與測試條件

在1080p Android模擬器上,使用Unity 2022.3和原生x86_64的30秒測試中,Unity攝影機平均為66.85 FPS,WebView動畫回呼平均每秒88.37次。測試送出12,012個顯示事件,產生工作跳過次數為0。兩項平均值都超過60,但部分測量區間仍低於60。

另一次Unity 6 ARM64模擬器測試中,Unity平均為52.80 FPS,WebView平均為87.92 FPS。由於引擎版本和程序架構都不同,這不是針對單一原因的比較。這些結果包含錄製負擔,來自模擬器,並非實體裝置的結果或影格率保證。

融入遊戲世界的介面

範例將名稱、血條、傷害與治療數字、增益和連擊帶入場景。八種風格從奇幻到鮮明的戰術介面各有不同,開發者也可以修改React原始碼,讓它符合自己遊戲的視覺風格。

Unity隨著鏡頭和角色移動追蹤UI的位置。React內容會被擷取為影像,並在內容變化時非同步更新。位置追蹤與內容更新是兩個過程,因此新的血量數值可能比移動稍晚到達。

Floating UI範例的Astral風格
Astral為同一場景帶來不同的視覺氛圍。
90秒範例展示五種風格。擴充版Floating UI仍在開發中。

為下一次命中留出餘裕

在維持相同負載的測試中,我們找到了重用已準備畫面、減少重複工作的機會。我們也會關注平均值之外的變化:對專注戰鬥的玩家而言,短暫停頓同樣重要。

本文介紹的擴充Floating UI和壓力測試改進仍在開發中,尚未以商店套件發布。我們會在準備發布的過程中持續測試不同環境。

延伸閱讀