最近有個朋友做加載優(yōu)化,偶然聽到他提起Application.backgroundLoadingPriority ,就順便看了一下!
Application.backgroundLoadingPriority:
這是Application類的一個個靜態(tài)屬性,可以控制后臺加載線程的優(yōu)先級,從而控制異步加載資源所需的時間,以及后臺加載時對游戲性能的影響。
適用API:
加載對象(Resources.LoadAsync,AssetBundle.LoadAssetAsync,AssetBundle.LoadAllAssetAsync),場景(Application.LoadLevelAsync,Application.LoadLevelAdditiveAsync)的異步加載函數(shù)在單獨的后臺加載線程上進行數(shù)據(jù)讀取和反現(xiàn)實化,并在主線程上進行對象集成。
根據(jù)backgroundLoadingPriority 值限制了主線程上的集成時間:
- ThreadPriority.Low - 2ms;
- ThreadPriority.BelowNormal - 4ms;
- ThreadPriority.Normal - 10ms;
- ThreadPriority.High - 50ms.
這是異步操作可以在主線程的單幀花費最長時間。
單幀花費時間越多,可加載的數(shù)據(jù)越多,因此幀率將有所下降,較為影響游戲性能,但可減少加載資源的時間,能更快的進入游戲!
反之,單幀花費時間越少,可加載的數(shù)據(jù)越少,對游戲的游戲性能影響較小,可在游戲進行時有很好的后臺加載。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void Example() {
Application.backgroundLoadingPriority = ThreadPriority.High;
}
}

參考資料:Unity官方文檔 Application.backgroundLoadingPriority