2.4 KiB
2.4 KiB
TextMeshPro 图文混排自动化管线流程
前提条件:美术已经按照规范(命名全英数字无空格、正方形比例、贴边无多余留白)将表情碎图(PNG格式)放置在指定的源文件夹中。
Step 1: 检查与收集图片资源
遍历美术准备的源文件夹,检查所有图片文件是否合规:
- 检查文件后缀是否为
.png。 - 检查文件名是否合法(仅包含小写英文、数字、下划线,严禁空格或中文字符),因为文件名将作为富文本调用的标识。
- (可选)检查图片宽高尺寸是否符合约定的统一规格。 验证通过后,将合格的碎图加载到内存中准备处理。
Step 2: 自动合并大图 (PackTextures)
在内存中创建一张空白大图,使用引擎接口(如 Texture2D.PackTextures)将收集到的所有碎图拼贴到一起。
在此过程中,代码需记录下每张小图在拼合后大图上的位置和尺寸信息(Rect),随后将这张大图导出并保存为项目里的一张新 PNG 实体文件。
Step 3: 自动设置大图切分属性 (Sprite Slicing)
通过代码获取刚刚生成大图的 TextureImporter:
- 将贴图类型修改为
Sprite (2D and UI)。 - 将 Sprite Mode 修改为
Multiple。 - 利用 Step 2 中记录的位置信息和对应的原文件名,自动写入切片数据(SpriteMetaData),完成大图的精准切分与命名。 保存 Importer 设置并刷新 AssetDatabase。
Step 4: 自动生成 TMP_SpriteAsset 资产
基于已经切分好的大图资源,通过代码创建 TextMeshPro 专用的表情资产:
- 实例化一个
TMP_SpriteAsset对象。 - 将切分好的大图赋值给该对象的图集属性。
- 根据切片信息构建 TMP 内部需要的字符映射表(SpriteCharacterTable)和排版信息表(SpriteGlyphTable)。(高版本亦可通过调用 TMP 的编辑器内部方法一键转换)。
- 将生成的
.asset文件保存到项目目录中。
Step 5: 最终关联与使用
- 全局关联:将生成的
TMP_SpriteAsset填入项目设置里的Default Sprite Asset中,或添加至你目前主中文字体的Fallback列表中。 - 代码/配表调用:原有文字搜集流程无需修改。配置文本或动态赋值时,直接插入
<sprite name="图标名">(如<sprite name="smile">)即可正常显示图文混排。