![]()
這是第469篇UWA技術知識分享的推送,精選了UWA社區、UWA AI問答的熱門話題等技術知識點,助力大家更全面地掌握和學習。
UWA社區主頁:community.uwa4d.com
UWA QQ群:793972859
本期目錄:
小游戲的Spine數量過多開銷大,怎么辦
- 關于在AssetBundle中同時看到SpriteAtlas圖集紋理和小圖是否合理
From問答社區
Q1:我們小游戲上Spine耗時有點高,平均每幀耗時8.04ms,該怎么優化?
![]()
![]()
A: 從函數調用次數來看,每幀有200多次調用,這個數量級下單個Spine的開銷其實已經相對較低了。其中還看到SkeletonAnimation.FixedUpdate會有3~4ms的開銷,理論上進入FixedUpdate后會直接Return,但由于調用數量太高(物理調用次數最大17,導致SkeletonAnimation.FixedUpdate的調用次數達到3000+),還是把這里的開銷堆上去了。可以考慮禁用Skeleton Animation組件,專門寫一個Manager主動觸發Spine的Update和LateUpdate,應該能減少大量Spine對象導致跨語言調用開銷。
Q2:是不是要重寫一個Skeleton Animation組件呢?
A: 在Manager里面注冊Skeleton Animation到List里面,統一把SkeletonAnimation.enabled=false就好,然后用Manager統一調用Update和LateUpdate,不用重寫Skeleton Animation。
Q3:是在Manager里面的Update直接getComponent到Skeleton Animation點出Update執行嗎?
A: 最好一開始就注冊到某個List 里面,動態維護這個List,在Update里面遍歷這個數組,每個成員都執行Update。
歡迎大家轉至社區交流:
https://answer.uwa4d.com/question/69c9ec21abed2e338a7dac6d
From問答社區
Q:有個打AssetBundle的情況想咨詢下, 我們把一個Unity SpriteAtlas圖集打成一個包,這個包里理論上應該只有合并后的圖集一個資源, 現在用AssetStudio解包看除了圖集還有單個散圖,是正常的嗎,會不會導致運行時同時加載出來圖集和小圖而冗余?
A: 下圖是只打了一個SpriteAtlas圖集的AssetBundle在AssetStudio中看到的情況。AssetBundle打包了sactx的Texture2D大圖的同時,也打包了很多Sprite;只要看到小圖的Type不是Texture2D,就是正常的。
![]()
Assets:
- Assets/CommonAssets/AssetBundle Test/Texture_common/SpriteAtlas/TestAtlas.spriteatlasv2
Dependencies: []
運行時還是僅加載一張大圖,然后找到其中小圖所在的UV位置和長寬,就渲染出來了。
歡迎大家轉至社區交流:
https://answer.uwa4d.com/question/69c9e6feabed2e338a7dac6c
無論是社區里開發者們的互助討論,還是AI基于知識沉淀的快速反饋,核心都是為了讓每一個技術難題都有解、每一次踩坑都有回響。本期分享分別來自UWA AI問答和UWA問答社區,希望這些從真實開發場景中提煉的經驗,能直接幫你解決當下的技術卡點,也讓你在遇到同類問題時,能更高效地找到破局方向。
封面圖來源于網絡
今天的分享就到這里。生有涯而知無涯,在漫漫的開發周期中,我們遇到的問題只是冰山一角,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.