這是第310篇UWA技術知識分享的推送。今天我們繼續為大家精選了若干和開發、優化相關的問題,建議閱讀時間10分鐘,認真讀完必有收獲。
UWA 問答社區:
UWA QQ群2:(原群已滿員)
本期目錄:
Q:想請教一下各位,Unity應用在手機息屏或者切入后臺時與正常運行之間有哪些區別?除了不需要渲染,是否會降幀運行呢?網絡通訊會受影響嗎?有沒有可能在編輯器上模擬這種息屏或者切后臺的效果?
A1: 在中,Unity是作為運行的,在息屏或者切入后臺后,會被暫停。 Unity會依次收到和這兩個事件。
網絡通訊肯定是會受到影響的,在模擬上可以復現這種情況。
感謝蕭小俊@UWA問答社區提供了回答
A2: iOS是假后臺,渲染會暫定,網絡會延遲一段時間后斷開,必須有斷線重連機制。
現在系統,如果發現APP占用內存大、耗能較高,也會被kill掉,建議監聽進入后臺事件,進行相應的同步處理,方便后臺拉起到前臺繼續游戲。
感謝鄭驍@UWA問答社區提供了回答,歡迎大家轉至社區交流:
UI
Q:找到了一個PSD轉開源的插件:
該方案的思路:
1. 使用PS的內置腳本導出PS中的圖片、文字為一份配置文件(需要命名規范)。
2.使用Unity編輯器解析配置文件,生成UGUI。
問題:
如果以PSD作為的源文件,原則上就不能手動修改了,所有改動都必須通過修改PSD來完成,那么PSD的規范就需要支持Unity的所有組件。如果大型項目組件很多,感覺不太現實。
如果PSD不作為源文件,前端可以進行的修改,但是后續有任何改動都不能再使用該工具導出。游戲開發如果是先用臨時界面完成開發的,這種情況下工具幾乎就完全用不上。
想請教有經驗的同學,上面的情況怎么處理才能使該流程通順?
A1: 我們之前一般只有做新功能的時候,才會用。因為動效、性能、遮罩等因素,是不能直接使用的,需要做UI的人進行單獨調整。之后一般小的改動就直接在上改了,畢竟再走一遍流程還是比較浪費效率的。
其實可以看一下,然后美術工程全部交由美術管理,效率上會高一點。
感謝蕭小俊@UWA問答社區提供了回答
A2: 理想是美好的。
現在PSD轉NGUI、UGUI、FGUI的方法都大同小異,解析PSD文件中的節點,生成對應UI框架的配置文件,例如、XML等。題主的想法挺好,但是實現成本較高。
第一點,一般美術來制作PSD,如果作為UI源文件,就需要PSD支持自定義屬性,其實就是在PS里寫插件來做一些自定義功能,或者在圖素命名的時候,就要規范功能性的內容,方便后續解析。也要根據圖層來組織UI的結構,這對UI美術來說成本極高。
第二點,做一套機制,PS修改后實時刷新。后續需求來了,也要刷新實例化之后的。
第三點,做完了,如果進行微調,肯定在引擎里最方便,轉身找美術從PS開始流程有點繁瑣了,是不是還要做一套?
第四點,總會有一些只能在引擎里表達的節點在PS里無法表達,這一部分二次開發量也不小。
整體算下來,這一套工具鏈從制作到落地,再到后期維護,有點得不償失。
感謝鄭驍@UWA問答社區提供了回答unity加載本地圖片,歡迎大家轉至社區交流:
Q:想請問一下HUD UI的資源加載問題是怎么處理的,我現在用的URP管線,包的模式,功能已經實現了,但是打資源以后加載出來顯示不正確,我想請問下這個有沒有什么解決方案?
A1:丟失?先判斷模式加載是否正常,中用加載是否正常,不過大概率是沒打進包內。
感謝-@UWA問答社區提供了回答
A2:可能原因:變體丟失,未打進里。打包時和UI未進行依賴關系綁定。加載時,依賴的未Load。
感謝鄭驍@UWA問答社區提供了回答,歡迎大家轉至社區交流:
Video
Q:在Unity 2021.3版本下,從中加載視頻播放 :: could not
1. 使用的版本是Unity 2021.3.8
2. 在打包視頻的時候設置了不壓縮
3. 放在目錄下
4. 相關代碼
btn..(() =>
ab = .(. + "http://"+ "/1109.ab");
Debug.Log(ab == null);
.clip = ab.("1109");
.Play();
///build
.(., ons.dle, .);
出現的問題:
在 9.0以下手機加載視頻播放不了,日志:
Unity :: could not :/CAB-/CAB-. to local file. Make sure file , is on disk (not in ) and not .
9.0以上則沒有問題。
一些參考:
從論壇帖中了解如果要想從加載視頻播放必須設置成不壓縮:
官方文檔也說明了:
Unity from asset . For Pie and above, Unity from asset .
按照上面來說,應該是可以加載視頻播放,但是還是有問題,不知道有沒有道友遇到過。
另外請問各位在處理視頻資源的時候是什么方案,也是打進,還是原封不動直接放到資源目錄?
A1: 一般打包時,作為二進制文件進行處理,不要基于作為資源更新的基本文件,這樣很多二進 制文件要單獨寫邏輯處理。
如果按照二進制文件處理,那么視頻可直接按原格式打包進包里,就不會出現上述問題,包括Lua、靜態數據表、版本號記錄文件、文件MD5文件、依賴關系表等都可處理,一勞永逸。
感謝鄭驍@UWA問答社區提供了回答
A2:有沒有可能目錄被壓縮了,可以從最終的APK里面的內存大小來Check,可以解壓出APK來看資源的壓縮前和壓縮后的大小是否相同,如果相同,就沒有被壓縮,如果不一樣,則是被二次壓縮了。
感謝Xuan@UWA問答社區提供了回答,歡迎大家轉至社區交流:
封面圖來源于網絡
今天的分享就到這里。當然unity加載本地圖片,生有涯而知無涯。在漫漫的開發周期中,您看到的這些問題也許都只是冰山一角,我們早已在UWA問答網站上準備了更多的技術話題等你一起來探索和分享。歡迎熱愛進步的你加入,也許你的方法恰能解別人的燃眉之急;而他山之“石”,也能攻你之“玉”。
官網:
官方技術博客:
官方問答社區:
UWA學堂:
官方技術QQ群:(原群已滿員)
點擊下方名片關注我們,將我設為星標,及時接收小編每日推送哦,性能優化不迷路~
近期精彩回顧