包含此页的版本:
不含此页的版本:
字体资源充当字体的容器。使用字体资源,您可以将字体导入到项目中,并从一个文件创建字体的变体,而无需更改原始字体。创建字体资源的另一个原因是处理具有大量字符集的语言,例如中文。您可以仅包含所需的字符,而不是完整的字符集。
您可以将 TrueType (.ttf)、OpenType (.otf)或 TrueType 集合(.ttc) 字体添加到字体资源。字体资源包括包含所有字符的字体图集纹理文件。创建字体资源时,有多种图集填充模式和渲染模式可供选择。
TextCore 支持静态、动态和动态作系统图集填充模式。
静态字体资源在转换过程中将字符预烘焙到图集纹理中。使用静态字体资源在项目中包含已知文本,例如标签和分区标题。创建静态字体资源时,字体图集默认为空。您必须手动生成字体图集并包含项目所需的所有字符。项目生成不需要您包含字体源文件,因此快速高效。
请参阅有关如何创建静态字体资产的说明。
动态字体资源从空的图集纹理开始。动态字体资产在源字体文件中查找字符,并在您在UI中使用字符时动态添加这些字符。将动态字体资源用于项目中的未知文本,例如任何文本输入字段允许用户输入文本字符串
的字段更多信息 请参阅术语表.动态字体资源是灵活的,但它们会产生额外的性能开销,因为项目构建需要包含所有源字体文件。
请参阅有关如何创建动态字体资源的说明。
动态作系统字体资产是一种动态字体资产,它引用作系统上的字体文件,而不是源字体文件。与动态字体资产相比,动态作系统字体资产的内存开销更少。项目生成不需要包含字体源文件。确保字体位于目标平台的作系统上。动态作系统字体资产是回退字体资产的绝佳候选者。
要创建动态OS字体资产,请将字体从作系统导入到项目中,并使用它创建动态字体资产,并将 Atlas填充模式(Atlas Population Mode) 更改为 动态OS(Dynamic OS)。
TextCore 支持位图和有符号距离场 (SDF) 的图集渲染模式。
位图渲染生成的字体资源完美对齐每个像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息
请参阅术语表字体的场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表和 GUI 像素。对像素艺术使用以下渲染模式:
SDF 渲染生成的字体资源在变换或放大时看起来很清晰。SDF 渲染支持轮廓和投影等效果。
与位图字体纹理不同,SDF 字体资源包含轮廓距离信息。在字体图集中,此信息看起来像从每个字形的中间到其边缘之外的点的灰度渐变。渐变的中点对应于字形的边缘。
下图显示了位图和 SDF 字体资源以及它们生成的渲染文本。位图字体生成的文本边缘或多或少是锯齿状和模糊的,具体取决于文本与相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表,以及它是如何转换和扭曲的。SDF 字体生成边缘平滑的文本,无论与相机的距离如何。
对 SDF 字体使用以下渲染模式:
如果只想更改字体资产的指标,请基于另一个字体资产创建字体资产变体,而不是创建新的字体资产。字体资产变体可以具有将其与原始字体资产区分开来的样式,而不会占用额外的纹理空间。该变体存储自己的人脸信息、角色、字形和调整对数据,但仍引用原始图集。
要创建字体资产变体,请右键单击字体资产,然后选择 创建>文本(Create Text> 字体资产变体(Font Asset Variant) 。
字体纹理中的字符需要在它们之间填充,以便可以单独渲染它们。此填充以像素为单位指定。填充还为 SDF 渐变创造了空间。填充越大,过渡越平滑,从而实现更高质量的渲染和更大的效果,例如粗轮廓。使用5对于一个512x512质地。一个好的经验法则是采样与填充比1:10.
对于大多数字体,请使用512x512纹理分辨率(如果包含所有 ASCII 字符)。要支持数千个字符,请使用大型纹理,并在字体资源的检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表窗。一旦主纹理已满,这会自动创建相同大小的新纹理。
如果你为移动设备进行设计,你还可以启用多图集纹理,其中强加的最大纹理大小会阻止整组字形适合足够质量的单个图集。
要使用字体资源,请在 UI Builder 中,从 Inspector 窗口的 字体资源(Font Asset) 中选择字体。
注意:“字体”字段用于向后兼容。如果要将 字体(Font) 列表中的字体用于旧项目,则必须从 字体资源(Font Asset) 中选择 无(None) 。否则,从字体中选择的字体将不会生效。
您可以使用以下语法将字体资产应用于 USS 中的文本元素:
-unity-font-definition: <resource> | <url>
例如:
Label {
-unity-font-definition: url("/Assets/UI Toolkit/Resources/Fonts & Materials/LiberationSans SDF.asset");
}
有关详细信息,请参阅 USS 文本属性。
总之,创建字体资源时,请考虑以下事项:
1:10.