這是第421篇UWA技術知識分享的推送,精選了UWA社區的熱門話題,涵蓋了UWA問答、社區帖子等技術知識點,助力大家更全面地掌握和學習。
UWA社區主頁:community.uwa4d.com
本期目錄:
- 關于CanvasRenderer.SyncTransform觸發調用的機制
- 小游戲Spine裁剪掉幀問題
- Dedicated Server性能問題
- .mp4視頻放入RT進行渲染的性能分析閉坑指南
UI
Q:已知UGUI主要耗時函數Rendering.UpdateBatches下的堆棧CanvasRenderer.SyncTransform調用次數較高確實會導致更高的整體耗時。看文檔和字面意思,應該是UI元素Transform信息變化后進行同步,但實際項目中測下來發現調用次數遠比預期的要高,所以這個東西實際的機制到底是什么?
A:在Unity 2021和2022的較新穩定版本上都做了實驗,發現有以下幾種情況:
1. 任何UI元素Transform信息變化(如位移、旋轉、拉伸,例如飄字這類Ul動畫)都會導致自身觸發一次CanvasRenderer.SyncTransform。若同時發生Transform信息變化的UI元素多,則顯然會導致調用次數高,比如像我們項目場景中玩家和野怪單位的大量HUD元素會隨著玩家視角變化頻繁位移。
2. 調用SetActive(True)激活UI元素時,會使當前Canvas下和其父Canvas下所有UI元素都觸發CanvasRenderer.SyncTransform。特別地,調用SetActive(False)隱藏UI元素時,不會觸發。
3. Instantiate實例化UI元素時,會使當前Canvas下和其父Canvas下所有UI元素都觸發CanvasRenderer.SyncTransform。
4. Destroy銷毀UI元素時,會僅使當前Canvas下所有UI元素都觸發CanvasRenderer.SyncTransform。
PS:以上API未實際生效時(如對一個已經被激活的對象調用SetActive(True)),則不會觸發CanvasRenderer.SyncTransform。
所以定位到問題后,優化手段上還是UI這塊老生常談的解放方案:即對1這種情況主要考慮控制更新頻率;對其他情況則是關注Canvas的層級設計,做好動靜分離。
該回答由UWA提供,歡迎大家轉至社區交流:
https://answer.uwa4d.com/question/67bbeb12682c7e5cd61bfa06
Animation
Q:小游戲Spine裁剪為什么幀率一下子就下來了,請問有什么解決辦法嗎?
A:Spine Clipping性能開銷很大,以下文檔里面說了解決方案,就是要么不用,要么減少Clipping Attachment組件多邊形的復雜程度:
https://en.esotericsoftware.com/spine-clipping
感謝李顯得@UWA問答社區提供了回答,歡迎大家轉至社區交流:
https://answer.uwa4d.com/question/67bbde0c3d306f3e9d594e63
Server
Q:把一個帶物理世界的Scene通過Dedicated Server-Linux發布成服務器程序,想通過Mirror實現狀態同步,但是發現CPU占用率好高,在一個2核的服務器中都有10%++,這還只是靜止的場景,即使場景Collider只有一個,也是那么高,請問這種的應該怎么辦?
像上述這種情況,一個局內對戰就是一個服務器程序,但一個服務器根本就開不了幾個服務器程序。
針對以上問題,有經驗的朋友歡迎轉至社區交流:
https://answer.uwa4d.com/question/67b949773d306f3e9d594e62
Rendering
Q:項目后期可能會大量使用視頻,請問對.mp4視頻放入RT進行渲染的性能分析有沒有什么閉坑指南,比如對于視頻解碼產生的內存進行控制等等。
針對以上問題,有經驗的朋友歡迎轉至社區交流:
https://answer.uwa4d.com/question/67b7214c3d306f3e9d594e61
封面圖來源于網絡
今天的分享就到這里。生有涯而知無涯,在漫漫的開發周期中,我們遇到的問題只是冰山一角,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.