這是第431篇UWA技術知識分享的推送,精選了UWA社區的熱門話題,涵蓋了UWA問答、社區帖子等技術知識點,助力大家更全面地掌握和學習。
UWA社區主頁:community.uwa4d.com
本期目錄:
- URP相機如何將場景渲染定幀模糊繪制
- 為什么Virtual Machine會隨著游戲時間變大
- 出海項目,打包時需要勾選ARMv7嗎
- Unity是手動還是自動調用GC.Collect
Rendering
Q:URP有沒有什么方法能控制攝像機的渲染?比如現在有個功能是,載入副本后,馬上BOSS和場景的渲染定幀,然后模糊處理。在這期間基本是只渲染這個“UI效果”。場景暫時不渲染以實現優化。 如果完全實時的話,那么每幀都要渲染這種覆蓋全屏的大面片特效,和高斯模糊計算背景。
A: 可以寫一個CopyColor的Pass,將3D場景的內容渲染完后,用這個拷貝的Pass將內容保存下來,只拷貝一幀,然后將這個Pass Disable掉,再將3D渲染相機的CullingMask改為Nothing, 這個CopyColor的Pass里面的RT的內容可以用來做UI模糊處理。
感謝Faust@UWA問答社區提供了回答,歡迎大家轉至社區交流:
https://answer.uwa4d.com/question/68219ad6682c7e5cd61bfa65
Memory
Q:在Unity WEBGL平臺(微信小游戲,沒有進行代碼分包),發現Virtual Machine隨著游戲時間變大(有對游戲進行操作,不是掛機)。請問可能是哪些方面的原因,有什么辦法能探查是受什么影響嗎?
A: 若代碼中大量使用未實例化的泛型參數(如List 的T從未被具體類型填充)或者反射動態創建類型(如Type.MakeGenericType),Profiler快照時會批量初始化這些類型,導致Virtual Machine內存突增。
一旦類型被初始化(無論是正常流程還是Profiler快照觸發),后續快照不會重復加載元數據,內存增長終止,因此理論上Virtual Machine不會無限制增長。如果每次對比都會增長,那應該是不合理的,如果對比次數比較少,不排除這個參數是開了MemoryP rofiler才會一直變大(如果是這個情況,就可以不關心這個參數了),所以可以考慮用XCode或者ADB看同樣的測試案例,整體內存會不會一直變大。
感謝Faust@UWA問答社區提供了回答,歡迎大家轉至社區交流:
https://answer.uwa4d.com/question/6821995a682c7e5cd61bfa64
Platform
Q:請問出海到東南亞的項目,打包時還有必要勾選ARMv7嗎?
A:從嚴謹角度出發,還是要看數據的,就是目標市場或人群的設備有多少比例不支持ARM64。實在不確定也可以先開著,統計一段時間,看看ARMv7設備多不多。
感謝Faust@UWA問答社區提供了回答,歡迎大家轉至社區交流:
https://answer.uwa4d.com/question/68219a423d306f3e9d594ed3
Memory
Q:請問Unity自己會調用GC.Collect這個方法嗎,還是需要我們自己手動調用?看下圖這個說明如果內存不緊張,沒有GC.Collect可能就一直不還內存了。
A: Unity會自動調用GC且不推薦手動調用。并且就像截圖里提到的,若六次GC掃描都用不到的內存就會被回收給系統。
感謝Faust@UWA問答社區提供了回答,歡迎大家轉至社區交流:
https://answer.uwa4d.com/question/6821a02a682c7e5cd61bfa67
封面圖來源于網絡
今天的分享就到這里。生有涯而知無涯,在漫漫的開發周期中,我們遇到的問題只是冰山一角,UWA社區愿伴你同行,一起探索分享。歡迎更多的開發者加入UWA社區。
UWA官網:www.uwa4d.com
UWA社區:community.uwa4d.com
UWA學堂:edu.uwa4d.com
點擊下方名片關注我們,將我設為星標,及時接收小編每日推送哦,性能優化不迷路~
近期精彩回顧
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.