Addressable卸載AssetBundle失效的疑惑

1)Addressable卸載AssetBundle失效的疑惑

2)模型Meta中的hasExtraRoot參數(shù)的作用及其歷史原因

3)TMP為什么有多次Delegate.Combine()的GC

4)準(zhǔn)備在海外發(fā)行游戲,比較常用的身份認(rèn)證類SDK

這是第331篇UWA技術(shù)知識(shí)分享的推送,精選了UWA社區(qū)的熱門話題,涵蓋了UWA問答、社區(qū)帖子等技術(shù)知識(shí)點(diǎn),助力大家更全面地掌握和學(xué)習(xí)。


Addressable

Q:項(xiàng)目開發(fā)的版本是UnityWebGL,我有一個(gè)初包場景A,一個(gè)過渡場景Loading,兩個(gè)用Addressables打的Bundle場景B與C,都是Remote的。

我在A場景點(diǎn)擊按鈕,使用SceneManager.LoadScene到Loading,然后用Addressables.LoadSceneAsync加載Bundle場景B,并保存了B場景的句柄Handle。

進(jìn)入到B場景后,點(diǎn)擊按鈕跳轉(zhuǎn)到Loading場景,然后拿到保存的B場景句柄Handle,使用Addressables.UnloadSceneAsync與Resources.UnloadUnusedAssets,然后Addressables.LoadSceneAsync加載Bundle場景C,并把原B場景的句柄Handle賦值C場景的句柄。

進(jìn)入到C場景后,又切換B場景,在Google瀏覽器F12模式下,第二次加載B場景,網(wǎng)絡(luò)模塊下沒顯示場景B的Bundle。

給我的感覺是B場景的Bundle在跳轉(zhuǎn)C場景的時(shí)候沒有被卸載,希望能幫助解答一下這是什么原因。

我查看了源碼,Addressables.UnloadSceneAsync的底層確實(shí)是調(diào)用了AssetBundle.Unload(true);的。

A:Addressable加載過一次的AssetBundle,會(huì)下載到本地硬盤緩存,Addressable.UnloadSceneAsync和Resources.UnloadUnusedAssets這兩個(gè)操作只是會(huì)讓相關(guān)資源從Runtime內(nèi)存中卸載,不會(huì)刪除本地硬盤的內(nèi)容。

第二次加載是不用從遠(yuǎn)程服務(wù)器加載的,而是通過本地硬盤加載,所以不存在網(wǎng)絡(luò)下載了。

感謝Xuan@UWA問答社區(qū)提供了回答

Mesh

Q:模型Meta中的hasExtraRoot參數(shù)的作用是什么?有什么歷史原因么?

模型Meta中有個(gè)奇怪的參數(shù)hasExtraRoot,看起來是humanDescription旗下的,但實(shí)際會(huì)對任何類型的模型都造成影響。

這個(gè)參數(shù)無論是在API還是編輯器界面,都找不到調(diào)整的地方。當(dāng)前項(xiàng)目中一部分是0,一部分是1。觀察得出,這個(gè)在為1的情況下,會(huì)保留外層無Mesh關(guān)聯(lián)的Transform;為0的情況下會(huì)移除頂層Child不超過1,并且無Mesh的Transform。

不知道這個(gè)是怎么生成的,是不是為了適配某些歷史版本呢?

針對以上問題,有經(jīng)驗(yàn)的朋友歡迎轉(zhuǎn)至社區(qū)交流分享:

https://answer.uwa4d.com/question/64252d9f6778221ae30a0fd9

TextMeshPro

Q:TMP為什么有多次Delegate.Combine()的GC?

只有一個(gè)界面對一個(gè)TMP的OnPreRenderText進(jìn)行了一次+=的操作,為什么在其他界面也發(fā)現(xiàn)有Delegate.Combine()的GC,且每次大小不同?

下圖是唯一操作過的界面:

下圖是其他界面,有2MB的,還有些幾十KB的:

針對以上問題,有經(jīng)驗(yàn)的朋友歡迎轉(zhuǎn)至社區(qū)交流分享:

https://answer.uwa4d.com/question/6423ff146778221ae30955ca

Platform

Q:準(zhǔn)備在海外發(fā)行游戲,請問身份認(rèn)證類SDK有哪些比較常用?最好是能直接支持Unity接入的,謝謝。

A:Google、Facebook或Game Center應(yīng)該都可以。

感謝WTF-082699@UWA問答社區(qū)提供了回答

封面圖來源于網(wǎng)絡(luò)


今天的分享就到這里。當(dāng)然,生有涯而知無涯。在漫漫的開發(fā)周期中,您看到的這些問題也許都只是冰山一角,我們早已在UWA問答網(wǎng)站上準(zhǔn)備了更多的技術(shù)話題等你一起來探索和分享。歡迎熱愛進(jìn)步的你加入,也許你的方法恰能解別人的燃眉之急;而他山之“石”,也能攻你之“玉”。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容