当前位置: 主页 > 传奇世界发布网 >

在Unity中处理UI文本的四种方法

发布时间:2019-06-06 14:09 来源:http://www.xmyth.org
文章摘要:最近将一些旧的基于2D工具包的Unity代转换为普通的Unity代,我遇到了一个难题:Unity对标准字体格式有很大的支持,但仍然不能与tk2d’ s支持相提并论用于从spritesheets构建字体。 精灵字体的一个例子 这是一个小问题–毕竟,它更容易,更容易删

最近将一些旧的基于2D工具包的Unity代转换为普通的Unity代,我遇到了一个难题:Unity对标准字体格式有很大的支持,但仍然不能与tk2d’ s支持相提并论用于从spritesheets构建字体。

精灵字体的一个例子

这是一个小问题–毕竟,它更容易,更容易删除现有字体–但我想保持手绘外观。

因此,我贬低了Unity为UI文本提供的不同选项(包括最近被Unity收购并内置于2018.1的TextMesh Pro)的目录。虽然我对排版的了解非常浅薄(而且这似乎是一个相当复杂的主题),但这应该可以让你了解那里有什么’以及为什么你可能想要使用它。

标准Unity字体资产

.ttf和.otf字体文件的标准Unity支持是在游戏中获取文本的最简单和最常用的方式。

在幕后,这似乎是一个动态创建的精灵字体。 Unity根据给定特定字体大小的字体构建纹理。

来源:字体资源是从.ttf或.otf文件自动构建的。

用法:仅限UI文本组件

缩放选项:可以在UI Text组件中缩放文本。缩放字体资源本身将增加从字体生成的纹理的大小,使最终结果更清晰。

优点/缺点:使用简单,但您只限于导入的字体支持的任何内容。

更多信息:字体上的Unity文档

Unity自定义字体

Unity确实能够创建自定义精灵字体,但它在缩放方面有些局限。

来源:自定义字体是根据材质(引用纹理)以及一组字符映射构建的。

字符映射对我来说似乎有点迟钝(虽然我认为如果你理解UV坐标会更容易),并且它似乎不是一个GUI工具,用于从spritesheet本身生成这些。每个字符都具有以下属:

索引:ASCII字符的索引UV纹理坐标:范围从0到1,占纹理宽度和高度的百分比Vert:像素坐标高级:绘制下一个字符之前要前进的像素数;更高的数字空格字母更远。

缩放选项:缩放似乎是自定义字体的弱点。据我所知,自定义字体忽略了“字体大小”和“字体大小”。 Text组件的属,仅限于导入的纹理的大小。

您可以设置包含Text组件的游戏对象的比例。但是,这会更改元素的边框,因此如果您尝试排列不同的元素,则会非常不方便。

用法:仅限UI文本组件

优点/缺点:它本机Unity支持精灵字体,但您只能使用缩放调整大小。没有用于生成字符映射的工具;你必须手工写出来。

更多信息:字体上的Unity文档

TextMesh Pro字体资产

与Unity不同,TextMesh Pro为字体文件和精灵字体提供单一格式,两种字体的行为相似。

TextMesh Pro字体的缺点是它们只能与TextMesh Pro UI组件一起使用。如果您认为有理由使用TextMesh Pro,那么最好早点做出这个决定并在整个项目中始终如一地使用它。试图改造用标准UI Text组件编写的现有项目将是一件痛苦的事。

来源:TextMesh Pro字体资源是根据材质和字符映射构建的,就像Unity自定义字体一样。

字符映射仅在像素坐标中,而不是UV映射,因此它比Unity自定义字体更容易,更精确。还有一个名为Font Asset Creator的工具,它将从字体文件构建一个TextMesh Pro字体资源。不过,对于精灵字体来说,这是一个繁琐的过程。

缩放选项:您可以按字体大小缩放TextMesh Pro UI组件中的TextMesh Pro字体资源,而无需更改游戏对象的缩放比例。根据我的经验,这是选择TextMesh Pro优于原生Unity文本的理由,如果有任何原因你想要使用精灵字体。

用法:TextMesh Pro–仅限文本UI组件

优点/缺点:比Unity的字体资产或自定义字体更灵活,但需要使用TextMesh Pro自带的UI Text组件。没有用于从spritesheets生成映射的工具;哟

最近将一些旧的基于2D工具包的Unity代转换为普通的Unity代,我遇到了一个难题:Unity对标准字体格式有很大的支持,但仍然不能与tk2d’ s支持相提并论用于从spritesheets构建字体。

精灵字体的一个例子

这是一个小问题–毕竟,它更容易,更容易删除现有字体–但我想保持手绘外观。

因此,我贬低了Unity为UI文本提供的不同选项(包括最近被Unity收购并内置于2018.1的TextMesh Pro)的目录。虽然我对排版的了解非常浅薄(而且这似乎是一个相当复杂的主题),但这应该可以让你了解那里有什么’以及为什么你可能想要使用它。

标准Unity字体资产

.ttf和.otf字体文件的标准Unity支持是在游戏中获取文本的最简单和最常用的方式。

在幕后,这似乎是一个动态创建的精灵字体。 Unity根据给定特定字体大小的字体构建纹理。

来源:字体资源是从.ttf或.otf文件自动构建的。

用法:仅限UI文本组件

缩放选项:可以在UI Text组件中缩放文本。缩放字体资源本身将增加从字体生成的纹理的大小,使最终结果更清晰。

优点/缺点:使用简单,但您只限于导入的字体支持的任何内容。

更多信息:字体上的Unity文档

Unity自定义字体

Unity确实能够创建自定义精灵字体,但它在缩放方面有些局限。

来源:自定义字体是根据材质(引用纹理)以及一组字符映射构建的。

字符映射对我来说似乎有点迟钝(虽然我认为如果你理解UV坐标会更容易),并且它似乎不是一个GUI工具,用于从spritesheet本身生成这些。每个字符都具有以下属:

索引:ASCII字符的索引UV纹理坐标:范围从0到1,占纹理宽度和高度的百分比Vert:像素坐标高级:绘制下一个字符之前要前进的像素数;更高的数字空格字母更远。

缩放选项:缩放似乎是自定义字体的弱点。据我所知,自定义字体忽略了“字体大小”和“字体大小”。 Text组件的属,仅限于导入的纹理的大小。

您可以设置包含Text组件的游戏对象的比例。但是,这会更改元素的边框,因此如果您尝试排列不同的元素,则会非常不方便。

用法:仅限UI文本组件

优点/缺点:它本机Unity支持精灵字体,但您只能使用缩放调整大小。没有用于生成字符映射的工具;你必须手工写出来。

更多信息:字体上的Unity文档

TextMesh Pro字体资产

与Unity不同,TextMesh Pro为字体文件和精灵字体提供单一格式,两种字体的行为相似。

TextMesh Pro字体的缺点是它们只能与TextMesh Pro UI组件一起使用。如果您认为有理由使用TextMesh Pro,那么最好早点做出这个决定并在整个项目中始终如一地使用它。试图改造用标准UI Text组件编写的现有项目将是一件痛苦的事。

来源:TextMesh Pro字体资源是根据材质和字符映射构建的,就像Unity自定义字体一样。

字符映射仅在像素坐标中,而不是UV映射,因此它比Unity自定义字体更容易,更精确。还有一个名为Font Asset Creator的工具,它将从字体文件构建一个TextMesh Pro字体资源。不过,对于精灵字体来说,这是一个繁琐的过程。

缩放选项:您可以按字体大小缩放TextMesh Pro UI组件中的TextMesh Pro字体资源,而无需更改游戏对象的缩放比例。根据我的经验,这是选择TextMesh Pro优于原生Unity文本的理由,如果有任何原因你想要使用精灵字体。

用法:TextMesh Pro–仅限文本UI组件

优点/缺点:比Unity的字体资产或自定义字体更灵活,但需要使用TextMesh Pro自带的UI Text组件。没有用于从spritesheets生成映射的工具;哟


相关资讯: