背景介紹
Accelerator(Cache Server)作為團(tuán)隊項(xiàng)目協(xié)作的資產(chǎn)緩存加速器,專用于存儲資產(chǎn)導(dǎo)入緩存(Library/Artifacts)和著色器緩存(Library/ShaderCache),實(shí)現(xiàn)了資產(chǎn)緩存的共享分發(fā),有效避免了團(tuán)隊成員重復(fù)導(dǎo)入資產(chǎn)。
詳情請參考:
https://docs.unity.cn/cn/tuanjiemanual/Manual/UnityAccelerator.html
以前的 Cache Server 架構(gòu)下,用戶反饋的核心問題包括:
打開項(xiàng)目需要下載全量資產(chǎn)緩存,缺少按需下載能力;
上傳本地資產(chǎn)緩存必須重新導(dǎo)入資產(chǎn),缺少導(dǎo)入和上傳解耦設(shè)計;
服務(wù)器資產(chǎn)緩存持續(xù)膨脹,缺少服務(wù)器資產(chǎn)緩存清理接口;
資產(chǎn)緩存的傳輸管理單一,缺失細(xì)粒度資產(chǎn)緩存管理接口;
團(tuán)結(jié)引擎圍繞上述問題,新增 Cache Server APIs 和 Lazy Download(按需下載)特性。
Lazy Download 新特性(按需下載)
在以前的 Cache Server 架構(gòu)下,打開項(xiàng)目需要下載全量資產(chǎn)緩存,項(xiàng)目首次打開時長會受到網(wǎng)絡(luò)波動的影響并且全量的資產(chǎn)緩存會占用大量磁盤空間 。對此,團(tuán)結(jié)引擎新增 Lazy Download 功能,實(shí)現(xiàn)了按需下載——項(xiàng)目首次啟動僅下載運(yùn)行時必要資產(chǎn),非必要資產(chǎn)可選擇后臺下載。
在某中度游戲項(xiàng)目的實(shí)際測試中,首次打開項(xiàng)目的必要資產(chǎn)緩存由以前的 18.7GB 大幅降低至 95.8MB,下載量減少了 99.5%,項(xiàng)目首次打開速度提升數(shù)倍。
用法速覽
1.命令行啟動方式,如下表所示;
Lazy Download Mode
用法
Disabled
不開啟
Lazy Download,這是系統(tǒng)默認(rèn)選項(xiàng),此時在用戶開啟項(xiàng)目時,會下載所有資產(chǎn)緩存。
支持命令行參數(shù)設(shè)置,`-cacheServerLazyDownloadMode 0`Lazy Download
開啟 Lazy Download,此時在用戶開啟項(xiàng)目時,只會下載部分資產(chǎn)緩存,其它資產(chǎn)緩存會在使用該資產(chǎn)時被下載。
支持命令行參數(shù)設(shè)置`-cacheServerLazyDownloadMode 1`Lazy Download And Background Download
在開啟Lazy Download的同時,也支持 Background Download,即在進(jìn)入項(xiàng)目后,后臺下載其余資產(chǎn)緩存。
支持命令行參數(shù)設(shè)置`-cacheServerLazyDownloadMode 2`2.UI界面啟動方式:
在Project Settings (Editor->CacheServer->Download),如下圖所示;
CacheServer->Download),如下圖所示;"},"attribs":{"0":"*0+2*1+1k*0+1*1+6"}},"apool":{"numToAttrib":{"0":["author","7211125165588021250"],"1":["author","7251896964022157313"]},"nextNum":2}},"type":"ordered","referenceRecordMap":{},"extra":{"channel":"saas","isEqualBlockSelection":true,"pasteRandomId":"da042fad-51cd-4305-8a3c-bc6a80648a01","mention_page_title":{},"external_mention_url":{}},"isKeepQuoteContainer":false,"isFromCode":false,"selection":[{"id":24,"type":"text","selection":{"start":0,"end":65},"recordId":"I3VmdoW1AoLDJtxiWK6ckH9HnGb"}],"payloadMap":{},"isCut":false}" data-lark-record-format="docx/text">
![]()
Cache Server 接口更新
緩存上傳
在以前的 Cache Server 架構(gòu)下,資產(chǎn)緩存的傳輸管理單一,用戶只能設(shè)置全局開關(guān),缺乏細(xì)粒度資產(chǎn)緩存的傳輸管理能力;資產(chǎn)的導(dǎo)入和上傳耦合,用戶只能通過觸發(fā)資產(chǎn)導(dǎo)入實(shí)現(xiàn)資產(chǎn)緩存上傳。
針對上述問題,團(tuán)結(jié)引擎新增資產(chǎn)緩存上傳接口
CacheServer.UploadArtifacts(),通過該接口用戶可以上傳特定的資產(chǎn)緩存及其修訂版本,避免資產(chǎn)重復(fù)導(dǎo)入。
用法速覽
void UploadArtifacts(GUID[] guids, bool uploadAllRevisions = false, bool force = false)如上所示,
CacheServer.UploadArtifacts()接受三個參數(shù):
1. GUID[] guids:
指定需要上傳的資產(chǎn)緩存。數(shù)組為空時,上傳全部資產(chǎn)緩存。
2. bool uploadAllRevisions:
控制是否上傳所有歷史修訂版本。true:上傳所有版本;false:僅上傳當(dāng)前主版本。
3. bool force:
控制是否強(qiáng)制上傳,當(dāng)Project Settings (Editor->CacheServer->Upload)中未啟用自動上傳時,強(qiáng)制覆蓋該設(shè)置。
Quick Start
緩存延遲上傳
團(tuán)結(jié)引擎新增
CacheServer.DelayUpload()接口,可用于
OnPostprocessAllAssets
()
回調(diào)完畢之后上傳資產(chǎn)緩存,或在關(guān)閉編輯器時上傳資產(chǎn)緩存。該接口保證了資產(chǎn)緩存經(jīng)過完整的后處理流程之后再上傳,有效規(guī)避了半成品資產(chǎn)緩存污染服務(wù)器資產(chǎn)緩存的風(fēng)險。用法速覽
void DelayUpload(GUID[] guids, bool immediate = true)如上所示,
CacheServer.DelayUpload()接受兩個參數(shù):
1.GUID[] guids:
需要上傳到緩存服務(wù)器的資產(chǎn)GUID數(shù)組。
2.bool immediate:
控制是否立即上傳。
immediate = true:OnPostprocessAllAssets 完成后立即上傳;反之,編輯器關(guān)閉時上傳所有持久化資產(chǎn)緩存。
Quick Start
}服務(wù)器緩存清理
由于之前的 Cache Server 未提供服務(wù)器資產(chǎn)緩存清理接口,服務(wù)器資產(chǎn)緩存會隨著項(xiàng)目迭代持續(xù)增長。針對這一問題,團(tuán)結(jié)引擎新增了
CacheServer.DeleteArtifacts()接口,該接口可以刪除異常或無用的服務(wù)器資產(chǎn)緩存,減少無效資產(chǎn)緩存污染,避免由于平臺切換產(chǎn)生的冗余資產(chǎn)緩存堆積。
注意:該方法只刪除服務(wù)器側(cè)資產(chǎn)緩存,不會對本地資產(chǎn)及緩存做任何修改。
用法速覽
bool DeleteArtifacts(GUID[] guids, bool deleteAllRevisions = false)如上所示,
CacheServer.DeleteArtifacts()接受兩個參數(shù):
1.GUID[] guids:
指定需要刪除的資產(chǎn),支持一個或多個 asset 的 GUID。
2.bool uploadAllRevisions:
控制是否刪除所有歷史修訂版本。與
CacheServer.DeleteArtifacts()接口中的 uploadAllRevisions 含義一致,默認(rèn)值為 false。
Quick Start
}未來規(guī)劃
完善前端頁面,滿足開發(fā)者對 Cache Server 中資產(chǎn)緩存的精細(xì)化管理。
結(jié)合資產(chǎn)方案 Instant Asset,推出資產(chǎn)免構(gòu)建一體化服務(wù),極大提升開發(fā)者項(xiàng)目開發(fā)周期的效率。
結(jié)合團(tuán)結(jié) Asset Manager,實(shí)現(xiàn)對項(xiàng)目資產(chǎn)的在線預(yù)覽、審核及管理服務(wù), Asset Manager 詳情參考:
https://assetmanager.unity.cn/
Unity 官方微信
第一時間了解Unity引擎動向,學(xué)習(xí)進(jìn)階開發(fā)技能
每一個“點(diǎn)贊”、“在看”,都是我們前進(jìn)的動力

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
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.