返回介绍

字体

发布于 2021-06-20 00:15:04 字数 3666 浏览 1011 评论 0 收藏 0

字体 (Fonts) 可以进行创建或导入,以在图形用户界面文本 (GUI Text)文本网格 (Text Mesh) 组件中使用。

导入字体文件

要将字体添加到工程,需要将字体文件置于资源文件夹中。Unity 随后将自动导入该文件。支持的字体格式为 TrueType 字体(.ttf 或 .dfont 文件)和 OpenType 字体(.otf 文件)。

要更改字体大小,请在工程视图 (Project View) 中突出显示它,在检视器 (Inspector) 的导入设置 (Import Settings) 中提供 了一些选项。


字体的导入设置
属性:功能:
字体大小 (Font Size)字体大小(基于任何文字处理程序中设置的大小)
字符 (Character)字体的文本编码。可以在此处强制字体仅显示大写或小写字符
 将此模式设置为“动态”(Dynamic) 会使 Unity 使用底层操作系统字体渲染例程(请参阅下文)。
2.x 字体放置 (2.x font placing)与 2.x 相比,Unity 3.x 使用印刷更正确的垂直字体放置。我们现在使用存储在 truetype 字体数据中的字体升高,而不是在渲染字体纹理时进行计算。勾选此属性会使用 2.x 垂直放置。

特定于非动态字体的导入设置

属性:功能:
字体渲染 (Font Rendering)应用于字体的抗锯齿量。

特定于动态字体的导入设置

属性:功能:
样式 (Style)应用于字体的样式(“正常”(Normal)、“粗体”(Bold)、“斜体”(Italic) 或“粗斜体”(BoldAndItalic) 之一)。
包括字体数据 (Include Font Data)此设置控制与“动态”(Dynamic) 字体属性一起使用时的字体打包。选中时,TTF 会包括在编译版本输出中。未选中时,会假设最终用户已在其计算机上安装了字体。请注意,字体受版权保护,只应包括已获得许可或为自己创建的字体。
字体名称 (Font Names)仅当未选择“包括字体数据”(Include Font Data) 时可用。输入逗号分隔的字体名称列表。将从左到右依次尝试这些字体,会使用在游戏者计算机上找到的第一个字体。

导入字体之后,可以在“工程视图”(Project View) 中展开字体,会看到其自动生成了一些资源。导入过程中会创建两个资源:“字体材质”和“字体纹理”。

动态字体

Unity 3.0 添加了对动态字体渲染的支持。将“导入设置”(Import Settings) 中的字符 (Characters) 下拉菜单设置为动态 (Dynamic)时,Unity 不会对所有字体字符预先生成纹理。而是使用 FreeType 字体渲染引擎动态创建纹理。这样做的优点是可以节省下载大小和纹理内存,尤其是在使用通常包括在用户系统中的字体时,因此您不必包括字体数据,或是在需要支持亚洲语言或较大字体大小时(使用正常字体纹理时,这会使字体纹理非常大)。

Unicode 支持

Unity 可完全支持 unicode。Unicode 文本使您可以显示在 ASCII 字符集中通常不支持的德语、法语、丹麦语或日语字符。如果字体支持,还可以输入许多不同的特殊用途字符(如箭头符号或选项键符号)。

要使用 unicode 字符,请从“导入设置”(Import Settings) 的字符 (Characters) 下拉菜单中选择 Unicode 或动态 (Dynamic)。现在可以使用此字体显示 unicode 字符。如果使用图形用户界面文本 (GUIText) 或文本网格 (Text Mesh),则可以在检视器 (Inspector) 中将 unicode 字符输入组件的文本 (Text) 字段中。请注意,Mac 上的检视器 (Inspector) 可能不会正确显示 unicode 字符。

如果要从脚本设置显示的文本,则也可以使用 unicode 字符。Javascript 和 C# 编译器完全支持基于 Unicode 的脚本。只需使用 UTF-16 编码保存脚本。在 Unitron 中,可以通过打开脚本并选择文本 (Text)->文本编码 (Text Encoding)->Unicode (UTF 16),来实现此目的。现在可以在脚本中将 unicode 字符添加到字符串,它们会按照预期方式显示在 UnityGUI、图形用户界面文本 (GUIText) 或文本网格 (Text Mesh) 中。在将 UniSciTE 用于脚本编辑的 PC 上,使用 UCS-2 Little Endian 编码保存脚本。

更改字体颜色

根据字体的使用方式,可通过不同方式更改所显示字体的颜色。

图形用户界面文本 (GUIText) 和文本网格 (Text Mesh)

如果使用图形用户界面文本 (GUIText) 或文本网格 (Text Mesh),则可以通过将自定义材质用于字体来更改其颜色。在“工程视图”(Project View) 中,单击创建 (Create)->材质 (Material),然后在检视器 (Inspector) 中选择并设置新创建的材质。确保将纹理从字体资源分配给材质。如果将内置图形用户界面/文本着色器 (GUI/Text Shader) 用于字体材质,则可以在材质的文本颜色 (Text Color) 属性中选择颜色。

UnityGUI

如果使用 UnityGUI 脚本显示字体,则对于不同情况下的字体颜色具有多得多的控制权。要更改字体的颜色,请通过资源 (Assets)->创建 (Create)->图形用户界面皮肤 (GUI Skin) 创建图形用户界面皮肤 (GUISkin),然后为特定控制状态定义颜色,例如标签 (Label)->正常 (Normal)-> 文本颜色 (Text Color)。有关更多详细信息,请阅读图形用户界面皮肤 (GUI Skin) 页面

提示

  • 要显示导入的字体,请选择该字体并选择游戏对象 (GameObject)->创建其他 (Create Other)->三维文本 (3D Text)。
  • 仅使用小写或大写字符可减小生成的纹理大小。
  • Unity 提供 的默认字体为 Arial。此字体始终可用,不会出现在“工程”(Project) 窗口中。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文