一、Style Sheet 到底是什么?
简单说,Style Sheet 就是一个样式集合的配置文件。你可以把常用的文本格式(比如标题、警告、特殊强调)打包成一个“样式”,之后在任意 TextMeshPro 文本里用一句 <style="样式名"> 就能直接调用,不用再重复写 <size><color><font-weight> 那一大堆标签了。
比如,你想让所有标题都是 红色、加粗、字号放大,并且前后各带一个星号、末尾自动换行。不用每次都写:
<font-weight=700><size=2em><color=#FF0000>*标题*</color></size></font-weight><br> 而是先在 Style Sheet 里定义一个叫 H1 的样式,把上面这些标签存进去,之后只要这样写:
<style="H1">标题</style> 瞬间清爽!
二、Style Sheet 的核心组成
每个 Style Sheet 里可以包含多个自定义样式(Style)。每个样式由以下部分组成:
- Name:样式名称,就是你在
<style>标签里引用的名字。 - Opening Tags:开头富文本标签,比如
<font-weight=700><size=2em><color=#FF0000>。 - Closing Tags:结尾富文本标签,比如
</color></size></font-weight>。 - Leading Text:样式应用前自动插入的固定文本(比如那个星号
*)。 - Trailing Text:样式应用后自动插入的固定文本(比如另一个星号
*和换行<br>)。
也就是说,一个样式不仅能控制标签,还能直接塞固定字符,特别适合做列表前缀、装饰符号等。
三、怎么创建和编辑 Style Sheet?
-
创建 Style Sheet 文件
在 Project 窗口右键 →Create→TextMesh Pro→Style Sheet,就会生成一个.asset文件。你可以给它起个名字,比如MyStyles。 -
打开并添加样式
双击这个文件,在 Inspector 里会看到Styles列表。点击+按钮就能新增一个样式条目,然后填写名称、开头标签、结尾标签、前后文本等。 -
应用到 TextMeshPro 组件
有两种方式:- 拖拽到组件上:把 Style Sheet 文件拖到 TextMeshPro 组件的
Style Sheet Asset字段里,之后在文本输入框里就能用<style="样式名">了。 - 设为默认样式表:如果希望项目里所有新建的 TMP 文本都自动使用这个样式表,可以进入
Edit→Project Settings→TextMesh Pro Settings,把Default Style Sheet设成你的文件。这样每个 TMP 对象都会默认关联它。
- 拖拽到组件上:把 Style Sheet 文件拖到 TextMeshPro 组件的
四、怎么在文本里使用样式?
只要你的 TMP 组件关联了 Style Sheet(无论是拖上去的还是默认的),就可以在文本内容中通过富文本标签调用:
<style="样式名">需要格式化的文字</style>
注意:样式名要完全一致,区分大小写。如果样式里定义了前后固定文本,它们会自动出现在内容两端,不用你额外写。
五、实战小例子:做一个“警告”样式
假设你经常要在游戏里显示红色的警告信息,格式是:字号 120%、加粗、颜色 #FF4444,并且前面加一个 ⚠ 符号。可以这样操作:
- 新建一个 Style Sheet,添加一个样式,命名为
Warning。 - Opening Tags 填:
<size=120%><font-weight=700><color=#FF4444> - Closing Tags 填:
</color></font-weight></size> - Leading Text 填:
⚠(注意后面有个空格) - Trailing Text 留空(不需要后缀)
之后在任何关联了这个 Style Sheet 的 TMP 文本里写:
<style="Warning">电量不足!</style>
就会自动显示为:⚠ 电量不足!(红色加粗 120% 字号)。是不是很方便?
六、进阶技巧与注意事项
-
样式可以嵌套吗?
理论上可以,但要小心标签闭合顺序。最好避免复杂嵌套,否则容易出 bug。 -
样式和直接标签冲突怎么办?
如果文本里同时有<style>和手动写的标签,会按顺序叠加效果。但若属性冲突(比如颜色),后写的会覆盖先写的。建议尽量统一用样式管理,减少直接标签。 -
竖排文字自动化
有个很酷的用法:把竖排需要的<rotate=270>标签定义成样式,再配合 Transform 旋转 90°,就能一键实现古风竖排文本,不用每次都手动调。 -
调试
如果样式没生效,检查:样式名是否拼错、TMP 组件是否关联了正确的 Style Sheet、富文本功能是否开启(Rich Text勾选)。
七、总结
Style Sheet 就是 TextMeshPro 里的“格式刷 + 样式库”,能帮你:
- 统一管理项目文本风格
- 减少重复劳动和出错概率
- 轻松实现一键换肤(换个 Style Sheet 文件就行)
下次再遇到满屏的 <color> <size> 标签,不妨把它们收进 Style Sheet,让代码和文本都干净起来。
