在游戲開發過程中,資源管理始終是影響團隊效率的關鍵環節。日常開發中,開發者通常只需訪問和操作項目中的部分資源,無需導入所有資源。而傳統的全量導入模式耗時較長,特別是對于資源數量較大的項目,完整的導入過程往往導致開發者耗費大量時間等待。
為了優化這一問題,Tuanjie 1.6.0 版本引入了資源按需導入功能,通過選擇性導入所需資源及其依賴項,避免了全量導入造成的資源管線阻塞問題,極大地縮短了團結引擎資源工作流所需的時間,實現資源管理的效率提升。
按需導入做了什么
工程首次打開時,引擎會對工程中的所有資源進行掃描并進行分類。分類完成后,對于工程啟動必須的資源進行導入(如腳本/shader/文件夾等),而對于工程啟動非必須的資源,則放置到 on-demand 的導入隊列中,并不進行實際的導入。
工程啟動之后,對于已經完成導入的資源進行正常顯示,而對于未完成導入的資源會采用模糊化圖標呈現。當引擎的使用過程中確實需要使用未導入的某個資源時(主動點擊,或者該資源被其他使用中的資源依賴),則觸發 on-demand 隊列中該資源的導入。
按需導入模式下,被分類為 on-demand 的資源在導入工作進程完成導入,因此在該模式下通過任務管理器查看 Editor 進程,可以看到多個 Editor 進程存在,除主進程外,其他均為用于資源導入的工作進程。
資源觸發導入之后,Editor 主進程會給工作進程發送請求進行導入,在工作進程導入完成后,會發送結果給主進程,并在主進程 Editor 中完成導入資源的顯示。按需導入的資源可以看到圖標呈現模糊 -> 導入轉圈 -> 清晰的顯示變化。
按需導入模式下,引擎會自動分析當前需要的資源,并在打開場景、打包 AB、構建 player 等情景下自動對所需依賴的資源進行導入。同時,由于將資源的導入從啟動時延后到使用時,因此可以極大加快工程的首次啟動速度。
開啟資源按需導入模式后,打開工程時僅需導入少量必需的資源。其余資源僅在其需要被訪問時導入。對于多人協作的大型項目,一個開發者通常只需訪問工程中的小部分資源,使用按需導入模式可以省去導入其它大量資源的時間。實測數據顯示,部分項目打開時間可以從2小時以上降至不到4分鐘。
智能加載機制:靈活操作,精準導入
On-Demand Import 功能的核心優勢在于其智能的資源加載機制,適配不同的場景需求:
導入模式靈活:開發者可以單獨導入一個或多個資源,也可以進行批量導入。
批量處理能力:批量導入支持從選定文件夾或搜索結果中批量導入資源,也可設置遞歸導入子目錄選項,滿足不同場景需求。
自動識別依賴:當用戶選擇需要編輯的特定資源后,系統將自動識別并加載該資源的依賴資源,無需手動追蹤。
工程減負:輕量編輯,即時響應
根據某十萬級資源體量的大型項目實測數據顯示,按需導入與全量導入、并行導入相比有顯著的速度優勢。該模式在項目初次導入與版本遷移場景中,均能實現快速啟動,有效降低等待導入的時間成本。
導入模式
Normal
Parallel
Ondemand
低配機
Intel(R) Core(TM) i7-10700 8-Core
263分鐘
97分鐘
10分鐘
高配機
AMD Ryzen 9 9950X 16-Core
139分鐘
38分鐘
4分鐘
資源狀態可視化
按需導入模式下,已導入和未導入的資源將以不同的效果呈現,開發者可以迅速識別,避免重復導入,減少決策時間。
已導入資源顯示完整縮略圖
未導入資源采用模糊化圖標呈現
如Fbx 模型文件:
快速上手
按需導入模式操作簡單,支持以下兩種打開方式:
通過命令行參數啟用
在打開項目時,在編輯器中添加一個命令行參數:
-ondemand=normal
通過配置文件啟用
在項目根目錄下創建一個名為 adb2.txt 的文件,內容為“ondemand=normal”的文件
立即體驗
歡迎開發者升級至Tuanjie 1.6.0版本,親身體驗On-Demand Import 模式帶來的效率提升。
更多詳細信息請參閱《團結引擎用戶手冊》中“資源工作流程-資源按需導入”部分。
https://docs.unity.cn/cn/tuanjiemanual/Manual/OnDemandImport.html
Unity 官方微信
第一時間了解Unity引擎動向,學習進階開發技能
每一個“點贊”、“在看”,都是我們前進的動力
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.