1、Profile 概述窗口配置
主要用于配置Addressable打包(構建)加載AB包時使用的一些變量,這些變量定義了
- 在哪里保存打包(構建)的AB包
- 運行時在哪里加載AB包
可以添加自定義變量,以便在打包加載時使用,之后在設置 組中打包和加載路徑相關時,都是使用這里面的變量
打開Profiles窗口
- Window > Asset Management > Addressables > Profiles
- 在AddressableAssetSettings中打開
- 在Addressables Groups窗口中打開
Profiles窗口參數相關
- BuildTarget:構建目標,可以在這里設置平臺,默認是激活的平臺
- LocalBuildPath:本地構建路徑,默認在項目的 Library 庫文件夾中
- LocalLoadPath:本地加載路徑,在哪里加載本地已有的資源
- RemoteBuildPath:遠程構建路徑
- RemoteLoadPath:遠程加載路徑,在哪里下載遠程內容和目錄
注意:
- 因為在發布應用程序時,默認設置會自動將 AB 包放入 SteamingAssets 文件夾中,一般情況下,不要去修改本地構建和加載路徑默認值,否則可能需要自己移動資源在 StreamingAssets 中
- 當針對不同平臺遠程分發內容時,通過多個配置文件最方便,如果想要最終的發布包包含所有內容,那么一個默認配置就夠了
- ProFile:概述文件
- Variable:變量(所有概述文件通用)
- Build and Load Path Variables:構建加載路徑變量(所有概述文件通用)
Profiles變量語法
所有的變量類型都是string字符串類型,可以在其中填寫一些固定的路徑或值來決定路徑,還可以使用兩個語法指示符讓原本的靜態屬性變成動態屬性
[]:方括號,可以使用它包裹變量,在打包構建時會計算方括號包圍的內容,比如:
- 使用自己的變量[BuildTarget]
- 使用別的腳本中變量[UnityEditor.EditorUserBuildSettings.activeBuildTarget]
在打包構建時,會使用方括號內變量對應的字符串拼接到目錄中
{}:大括號,可以使用它包裹變量,在運行時會計算大括號包圍的內容,比如:
使用別的腳本中變量{UnityEngine.AddressableAssets.Addressables.RuntimePath}
注意:方括號和大括號中使用的變量一定是靜態變量或者屬性。名稱、類型、命名空間必須匹配
比如在運行時 UnityEditor編輯器命名空間下的內容是不能使用的
2、AddressableAssetSettings
在導入Addressables包之后 創建的那些就是配置文件
AddressableAssetsData文件夾下的內容都是本質為ScriptableObject的數據配置文件
我們可以在工程中對Addressables相關內容進行設置,他們會影響我們的打包方式等等相關內容
AddressableAssetsData(可尋址資源數據)
- AssetGroups(資源組):當我們創建一個組就會多一些相關數據配置文件
- AssetGroupTemplates(資源組模板,主要是對資源組的一些默認設置)
- Packed Assets:打包資源數據配置
- DataBuilders(數據生成器,這些內容決定了在不同模式下,資源打包和使用的方式)
- BuildScriptFastMode:構建腳本快速模式
- BuildScriptPackedMode:構建腳本打包模式
- BuildScriptPackedPlayMode:構建腳本打包播放模式
- BuildScriptVirtualMode:構建腳本虛擬模式
- AddressableAssetSettings(可尋址資源設置)
- DefaultObject(默認對象)
AddressableAssetSettings 參數講解
- Profiles In Use:可以在選擇使用的是哪一套配置文件
- Manage Profiles:點擊打開管理配置文件窗口
- Send Profile Events:啟用分析器事件,啟用后可以在 Event Viewer 窗口查看 Addressable 相關信息
- Log Runtime Exceptions:記錄運行時加載相關的異常
目錄相關設置,將資源的地址映射到其物理位置
- Player Version Override:重寫用于指定遠程目錄名稱的時間戳,如果不設置默認使用時間戳作為遠程目錄命名
- Compress Local Catalog:在壓縮的 AssetBundle 文件中生成目錄,可以壓縮大小,但是會增加生成和加載的時間(減少流量)
- Build Remote Catalog:構建遠程目錄,勾選后會出現新選項
- Build & Load Paths:在何處生成和加載遠程目錄,從列表中選擇一個配置文件路徑,如果要分別設置生成路徑和加載路徑,請選擇<custom>,僅在啟用生成遠程目錄時可見
- Build Path:遠程構建路徑,在何處構建遠程目錄,通常,應該使用 RemoteBuildPath 配置文件變量。僅當將生成和加載路徑設置為<custom>時顯示
- Load? Path:遠程加載路徑,用于訪問遠程目錄的 URL,通常,應該使用 RemoteLoadPath 配置文件變量。僅當將生成和加載路徑設置為<custom>時顯示
- Path Preview:路徑預覽
在編輯器中進入播放模式時,選擇 Addressable 系統如何加載資產,這些腳本處理默認的構建進程,并提供不同的方式在編輯模式下訪問數據。
可以在 AddressableAssetData/DataBuilders 文件夾中找到這些腳本,如果要為他們自定義腳本,那么對應的腳本需要是 BuildScriptBase 的子類,并且繼承 IDataBuilder
- Use Asset Database:使用資源數據庫
- Simulate Groups:模擬組
- Use Existing Build:使用現有版本
- Default Build Scripts:默認生成腳本
- Packed Asset:打包資源,定義可用于創建新租的模板列表,創建新模板時,必須先將其添加到此列表中,然后才能使用它
- Addressables 包含一個模板,其中包含默認構建腳本使用的模式,可以在 AddressableAssetData/AssetGroupTemplates 文件夾中找到該模板
3、Packed Assets 打包資源數據配置
確定如何處理組中的資源,比如可以指定生成 AB 包的位置和包壓縮相關的設置
打包資產參數講解
- Build & Load Paths:配置文件路徑對,定義可尋址構建系統在哪個路徑為此組創建內容,以及可尋址系統在運行時在何處加載這些內容
- Build Path:打包路徑?
- LocalBuildPath:本地路徑
- RemoteBuildPath
- Load Path:加載路徑
- LocalLoadPath
- RemoteLoadPath
- Path Preview
- Asset Bundle Compression:AB 包的研所方式,默認時 LZ4,通常時最有效的選項,建議使用
- Uncompressed:不壓縮,包較大,不推薦
- LZ4:壓縮,相對 LZMA 大一點,建議使用,用什么解壓什么,內存占用低
- LZMA:壓縮最小,解壓慢,用一個資源要解壓所有
- Include in Build:包含在構建中,是否在內容生成中包含此組中的資源,如果取消勾選,那么在選擇打包時,不會打包改組的內容
- Use Asset Bundle Cache:使用 AB 包緩存,是否緩存遠程分發的包
- Asset Bundle CRC:是否在加載前驗證 AB 包的完整性
- Disabled:永遠不檢查完整性
- Enabled, Includeing Cached:檢查完整性,包括緩存也檢查
- Enabled, Excludeing Cached:檢查完整性,不包括緩存也檢查
- Include Address in Catalog:是否將地址字符串包含在目錄中。如果不使用地址字符串在組中加載資源,則可以通過不包括他們來減小目錄的大小(其實就是資源名加載)
- Include GUIDs in Catalog:是否在目錄中包含 GUID 字符串。必須包含 guid 字符串才能使用資產參考。如果不使用 AssetReference 或 GUID 字符串在組中加載資源,則可以通過不包含他們來減小目錄的大小
- Include Labels in Catalog:是否在目錄中包含標簽字符串。如果不適用標簽在組中加載資源,則可以通過不包含這些資產來縮小目錄的大小
- Internal Asset Naming Mode:如何在內部命名目錄中的資源
- Full Path:全路徑
- FileName:文件名
- GUID:資源的 Guid 字符串
- Dynamic:Addressables 根據組中的資源選擇最小的內部名稱
- Cache Clear Behavior:確定安裝的應用程序何時從緩存中清除 AB 包
- Clear When Space is Needed In Cache:在緩存中需要空間時清除(只會更新變更的資源)
- Clear When new Version Loaded:在加載新版本時清除(全部清除下載新的)
- Bundle Mode:打包模式,如何將此組中的資產打包到包中
- Pack Together:創建包含所有資產的單個包(一個組是一個包)
- Pack Seperately:為組中的每個主要資產創建一個包,如精靈圖片中的精靈圖片被包裝到一起,添加在組中的文件夾中的資產也打包在一起(一個組中的同一類型的資源打一個包)
- Pack Together by Label:為共享相同標簽組合的資產創建一個包
- Asset Load Mode:資源加載模式
- Requested Asset And Dependencies:請求的資源和依賴項
- All Packed Assets And Dependencies:所有包中的資源和依賴項
創建自定義的配置
在 Project 窗口右鍵或者點擊 + 號
Create -> Addressables -> Group Template -> Blank Group Template
4、Addressables Hosting 可尋址托管窗口
一般的資源服務器需要將其搭建為 http 服務器,這樣才能進行資源的上傳和下載,而 Unity 為了簡化本地測試這一過程,提供了快捷搭建 http 服務器的工具 Addressables Hosting
通過它可以將我們的本機模擬為一臺遠端服務器來進行遠端發布加載測試,可以幫助我們快速的進行遠程打包下載的相關測試。簡單理解就是把本地作為一臺資源服務器
可尋址托管窗口參數
- Create:
- Local Hosting:本地托管,通過本機模擬加載相關內容
- Service Name:服務器名稱
- Service Type(ID):服務器類型
- Port;端口號(一般不自己設置,避免和其他應用發生沖突)
- Upload Speed(kb/s):上載速度
- Enable:是否啟用,啟用后會自動分配端口號
- Hosting Service Variables:托管服務變量
- Variable Name:變量名
- Value:值
- Custom Service:自定義服務?
- Local Hosting:本地托管,通過本機模擬加載相關內容
我們可以使用 Local Hosting 這些變量名來編輯 Addressables Profiles 中發布和加載相關路徑:http://[PrivateAddress]:[HostingServiceProt]/[BuildTarget]
注意事項
Addressable Hosting 窗口創建的本地服務器有時候會失效,可以使用第三方工具,讓本機變為一個 http 服務器模擬遠程加載,比如 hfs