1)Assetbundle.Unload(true)解除安裝資源時沒呼叫ScriptableObject的OnDisable
2)Unity VolumeManager中ReplaceData如何最佳化
3)關於使用Addressable的資源放在遠端伺服器後的下載問題
4)Prefab對DLL中指令碼的引用丟失
這是第377篇UWA技術知識分享的推送,精選了UWA社群的熱門話題,涵蓋了UWA問答、社群帖子等技術知識點,助力大家更全面地掌握和學習。
UWA社群主頁:community.uwa4d.com
UWA QQ群:465082844
Memory
Q:最近發現專案中的Mono記憶體佔用一直在增長。專案用的是Addressables來管理資源。
看了下記憶體這塊,發現專案中的Spine資源SkeletonDataAsset.cs分配了一堆記憶體。測試了一下,發現當我呼叫解除安裝介面時,繼承ScriptableObject類的OnDisable並沒有被呼叫到。
現在開始懷疑是不是因為ScriptableObject並沒有被解除安裝乾淨導致。
有人知道這是為什麼導致的嗎?
針對以上問題,有經驗的朋友歡迎轉至社群交流分享:
https://answer.uwa4d.com/question/65e5705040a8d93b624afcf5
Script
Q:請問Unity VolumeManager中ReplaceData怎麼最佳化?為什麼每幀都會更新所有的引數?
A:因為每個相機需要判斷Post是否對自己生效,每個相機執行前需要還原成預設值,否則其他相機的結果會影響到當前相機的判斷結果。不只是每幀執行,是每幀每個相機都會執行一次。
感謝1 9 7 3-311135@UWA問答社群提供了回答
Resource
Q:關於Addressable構建資源在遠端伺服器上下載出錯,打包Android後我將自己的熱更資源放在遠端伺服器上,當我執行APK之後,在已經載入了AOT的Bundle和熱更程式碼的Bundle的情況下,再下載一個144MB的Bundle時報錯,在該檔案目錄下的其它Bundle正常載入。而我使用Addressable的Hosting進行區域網熱更時載入完全沒問題。
錯誤日誌:
OperationException : GroupOperation failed because one of its dependencies failed RemoteProviderException : Unable to load asset bundle from : http://101.132.125.213/ServerDatalAndroid/hotscene_scenes_all_2909c01451a389c3c90a83bbd3eb13b9.bundle UnityWebRequest result : ConnectionError : Unknown Error ResponseCode : 200,Method : GET url : http://101.132.125.213/ServerData/Android/hotscene_scenes_all_2909c01451a389c3c90a83bbd3eb13b9.bundle
載入程式碼:
public AssetReference hotUpdateMainSceneRef; // 熱更主場景 private async UniTask _enter_hotfix_main_scene() { try { //下載熱更新場景 var scene = await Addressables.LoadSceneAsync(hotUpdateMainSceneRef); // 啟用場景 await scene.ActivateAsync(); } catch (Exception ex) { text.text += $"載入熱更場景報錯\n"+ex; } }
檔案目錄:
針對以上問題,有經驗的朋友歡迎轉至社群交流分享:
https://answer.uwa4d.com/question/65ec1e5a3625c22cffcb1e4e
Prefab
Q:開發時,不希望策劃看到原始碼,於是將原始碼替換成DLL,但是這樣掛在Prefab上的指令碼引用會丟失,請問怎麼解決?
A:透過反射查詢DLL所有繼承Mono的指令碼,然後建立一個空的派生類繼承那個Mono指令碼,接著把指令碼的Meta的GUID和原始碼裡指令碼保持一致,把所有生成的派生空指令碼和DLL放同一個目錄,只有非程式人拉取即可,我們專案就是這麼弄的。
感謝水岸上@UWA問答社群提供了回答
封面圖來源於網路
今天的分享就到這裡。生有涯而知無涯,在漫漫的開發週期中,我們遇到的問題只是冰山一角,UWA社群願伴你同行,一起探索分享。歡迎更多的開發者加入UWA社群。
UWA官網:www.uwa4d.com
UWA社群:community.uwa4d.com
UWA學堂:edu.uwa4d.com
官方技術QQ群:465082844