Files
obsidian-notes/InBox/TMP字体Atlas内存优化实战.md
Build Bot f7310caea0 同步
2026-05-18 01:20:38 +08:00

2.1 KiB
Raw Blame History

title, source, author, date, tags
title source author date tags
TMP字体Atlas内存优化实战 https://mp.weixin.qq.com/s/iPSxQvg-riGh66efHlSyLA 侑虎科技 2026-05-06
Unity
TMP
内存优化
Atlas
UWA

【厚积薄发】从64MB降至5MBTMP字体Atlas内存优化实战

来源UWA公众号 - 第474篇UWA技术知识分享

实战案例一字体Atlas双实例冗余 + RW动态图集内存过高

问题: GOT Online报告显示项目游戏字体Atlas出现双实例冗余且开启RW动态图集内存占用过高。

原因:

  • 字体Atlas实例数量为2通常是因为该字体既在初始包中的初始场景中被引用又在后续AssetBundle资源中重复引用
  • RWRead/Write Enabled开启导致CPU和GPU各存一份内存翻倍

解决方案:

  1. 将初始场景中使用的字符单独创建对应的小字体,避免初始场景中有大图集和大字体的引用
  2. 预先收集游戏的大部分字符集将Atlas设置为静态图集配置可减少16MB占用
  3. 不在静态图集中的字符通过TMP的Fallback机制设定一个小分辨率如512×512的动态Atlas进行字符补充

实战案例二TMPAsset内嵌Atlas纹理无法压缩

问题: TMPAsset内嵌Atlas纹理属于子资源无法单独进行纹理压缩参数配置。

解决方案Editor脚本改造

  1. 通过Editor编辑器脚本对该纹理进行独立复制
  2. 将TMPAsset材质球关联替换为复制后的新纹理
  3. 移除原TMPAsset内的内嵌纹理
  4. 剥离后的独立纹理可自由配置压缩格式ASTC6×6、ASTC8×8等进一步降低内存开销
  5. 真机测试:压缩后文字美术表现无明显差异

优化前后对比

项目 内存
优化前 64MB
优化后合计 4.75MB
初始场景 512×512 静态图集 0.25MB
4096×4096 静态图集ASTC8×8 4MB
Fallback兜底纹理 512×512Alpha8 0.5MB

相关资源

  • UWA社区community.uwa4d.com
  • UWA官网www.uwa4d.com
  • UWA学堂edu.uwa4d.com
  • QQ群793972859