博客 / 詳情

返回

Unity引擎關於APP後台下載支持的實現問題

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

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.