1)Unity引擎關於APP後台下載支持的實現問題
2)Prefab對DLL中腳本的引用丟失
3)Unity DOTS資源加載問題
4)UnitySendMessage和_MultiplyMatrixArrayWithBase4x4_NEON調用導致崩潰
這是第376篇UWA技術知識分享的推送,精選了UWA社區的熱門話題,涵蓋了UWA問答、社區帖子等技術知識點,助力大家更全面地掌握和學習。
UWA社區主頁:community.uwa4d.com
UWA QQ羣:465082844
Network
Q:最近很多遊戲在Loading界面會標明支持後台下載模式,項目也計劃實現一個,首先找到了Unity自帶的BackgroundDownload解決方案,功能是可以的,也好接入,但項目中的文件數量比較多,有大幾萬個,同時建立這麼多鏈接非常卡頓,經過簡易優化,速度提升了一些,同時平滑建立連接數不再那麼卡頓,但所有連接建立完還是需要很長時間,同時Android環境在創建1000+個下載服務時,會崩潰,沒有明確的報錯,每次會有下圖中的異常!
諮詢下各位大佬,如下幾個問題:
1. 崩潰如何處理?
2. 如何平滑快速地建立起下載連接?
3. 有沒有其他更好的處理類似問題的解決方案?
A:可以試試以下方案:
方案1:把所有要下載的任務,放到1個隊列,開多個線程去處理這個隊列的下載任務,並且限制設定同時下載的任務數。
方案2:把對應資源,根據一些規則(如:等級1-10級會用到的資源在1個zip包,11-20級會用到的資源放在1個zip包),然後根據一些條件在不同時刻來下載不同的zip包。
感謝hejianchun@UWA問答社區提供了回答
Prefab
Q:開發時,不希望策劃看到源碼,於是將源碼替換成DLL,但是這樣掛在Prefab上的腳本引用會丟失,請問怎麼解決?
A:可以試試以下方案:
方案1:程序項目內也使用DLL的方式。
方案2:Component動態Add上去。
感謝hejianchun@UWA問答社區提供了回答
DOTS
Q:我用Unity ECS 1.0,如果場景裏有子Scene,那麼子Scene是否勾選的區別是什麼?我知道,如果不勾選Bake函數在Editor模式就會開始執行,但如果裏面有Resource加載這樣的運行時接口就會報錯,請問怎麼解決?
針對以上問題,有經驗的朋友歡迎轉至社區交流分享:
https://answer.uwa4d.com/question/65def28c40a8d93b624afcf0
Crash
Q:安卓平台崩潰問題,發現調用方法是UnitySendMessage和_MultiplyMatrixArrayWithBase4x4_NEON,各位有遇到過的嗎?
Unity版本:2021.3.11f1c2;
libunity.0xe20870-libunity.0xe106b8是UnitySendMessage;
libunity.0x4457cc-libunity.0x50965c是_MultiplyMatrixArrayWithBase4x4_NEON。
信息如下:
Caused by: java.lang.Error: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Version '2021.3.11f1c2 (2c7757f00bfe)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'arm64-v8a'
Build fingerprint: 'samsung/e3qxeea/e3q:14/UP1A.231005.007/S928BXXU1AWM9:user/release-keys'
Revision: '13'
ABI: 'arm64'
Timestamp: 2024-02-20 16:59:33+0800
pid: 30649, tid: 31379, name: Job.Worker 1
uid: 10421
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x76ebcb5000
x0 0000000000000000 x1 000000000000010e x2 00000000000000ff x3 0000000000ff0000
x4 0000000000a20000 x5 0000000000000010 x6 00000076409907b8 x7 000000000f800000
x8 00000075701da080 x9 00000076ebcb5004 x10 00000075701da08c x11 0000000000000030
x12 00000075701da098 x13 0000000000000030 x14 0000000000000000 x15 0000000000000000
x16 0000000000000000 x17 00000076409905d4 x18 0000000000000000 x19 0000007640990970
x20 00000075e01f3290 x21 00000076ebcb4ffc x22 0000007640990601 x23 0000000038800000
x24 00000000b8800000 x25 0000000000000030 x26 00000075701d6e08 x27 00000076ebcb4ffc
x28 0000007640990550 x29 0000000000000000
sp 0000007640990480 lr 0000000038000000 pc 000000766ae96870
backtrace:
#00 pc 0000000000e20870 /data/app/~~iu98SuuYphKnX60ZotTOng==/-vNyiDhpbcBIkm6XnXDDGxg==/lib/arm64/libunity.so (BuildId: ae67f16cb275ae637576fa8522cf80f73e009dd8)
#01 pc 0000000000e1550c /data/app/~~iu98SuuYphKnX60ZotTOng==/-vNyiDhpbcBIkm6XnXDDGxg==/lib/arm64/libunity.so (BuildId: ae67f16cb275ae637576fa8522cf80f73e009dd8)
#02 pc 0000000000e10ac4 /data/app/~~iu98SuuYphKnX60ZotTOng==/-vNyiDhpbcBIkm6XnXDDGxg==/lib/arm64/libunity.so (BuildId: ae67f16cb275ae637576fa8522cf80f73e009dd8)
#03 pc 0000000000e106b8 /data/app/~~iu98SuuYphKnX60ZotTOng==/-vNyiDhpbcBIkm6XnXDDGxg==/lib/arm64/libunity.so (BuildId: ae67f16cb275ae637576fa8522cf80f73e009dd8)
#04 pc 00000000004457cc /data/app/~~iu98SuuYphKnX60ZotTOng==/-vNyiDhpbcBIkm6XnXDDGxg==/lib/arm64/libunity.so (BuildId: ae67f16cb275ae637576fa8522cf80f73e009dd8)
#05 pc 0000000000445acc /data/app/~~iu98SuuYphKnX60ZotTOng==/-vNyiDhpbcBIkm6XnXDDGxg==/lib/arm64/libunity.so (BuildId: ae67f16cb275ae637576fa8522cf80f73e009dd8)
#06 pc 0000000000445c98 /data/app/~~iu98SuuYphKnX60ZotTOng==/-vNyiDhpbcBIkm6XnXDDGxg==/lib/arm64/libunity.so (BuildId: ae67f16cb275ae637576fa8522cf80f73e009dd8)
#07 pc 00000000004451b4 /data/app/~~iu98SuuYphKnX60ZotTOng==/-vNyiDhpbcBIkm6XnXDDGxg==/lib/arm64/libunity.so (BuildId: ae67f16cb275ae637576fa8522cf80f73e009dd8)
#08 pc 000000000050965c /data/app/~~iu98SuuYphKnX60ZotTOng==/-vNyiDhpbcBIkm6XnXDDGxg==/lib/arm64/libunity.so (BuildId: ae67f16cb275ae637576fa8522cf80f73e009dd8)
#09 pc 00000000000c37b4 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) (BuildId: 37f537c2ba9dcbb262a0a68f41a21da4)
#10 pc 000000000005d084 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68) (BuildId: 37f537c2ba9dcbb262a0a68f41a21da4)
at libunity.0xe20870(Native Method)
at libunity.0xe1550c(Native Method)
at libunity.0xe10ac4(Native Method)
at libunity.0xe106b8(Native Method)
at libunity.0x4457cc(Native Method)
at libunity.0x445acc(Native Method)
at libunity.0x445c98(Native Method)
at libunity.0x4451b4(Native Method)
at libunity.0x50965c(Native Method)
at libc.__pthread_start(void*)(__pthread_start:208)
at libc.__start_thread(__start_thread:68)
針對以上問題,有經驗的朋友歡迎轉至社區交流分享:
https://answer.uwa4d.com/question/65d5a39240a8d93b624afce7
封面圖來源於網絡
今天的分享就到這裏。生有涯而知無涯,在漫漫的開發週期中,我們遇到的問題只是冰山一角,UWA社區願伴你同行,一起探索分享。歡迎更多的開發者加入UWA社區。
UWA官網:www.uwa4d.com
UWA社區:community.uwa4d.com
UWA學堂:edu.uwa4d.com
官方技術QQ羣:465082844