【UGUI】TextMeshPro如何配置和使用中文字体

这篇具有很好参考价值的文章主要介绍了【UGUI】TextMeshPro如何配置和使用中文字体。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        在Unity中,TextMeshPro与常规 Text 组件相比提供了更高级的文本呈现功能,TextMesh Pro 可以处理各种语言,包括中文。我们可以轻松地在 Unity 项目中使用中文,而不必担心字体和布局问题。

目录

一、配置和使用中文字体步骤

二、警告及解决方案

三、Font Asset Creator属性介绍


一、配置和使用中文字体步骤

        第一步,从字体库或其他来源获取中文字体文件,通常为.ttf、.otf或.ttc格式。最简单的方式是从Windows系统文件的Font文件夹里拖一个.ttc文件(C盘 > Windows文件夹 > Fonts 文件夹)。这里提供一个中文字体下载资源:Font/font at master · kaienfr/Font · GitHub

【UGUI】TextMeshPro如何配置和使用中文字体

        第二步,新建一个文本文件,命名为“我的字库”,打开.txt文件,编辑文字,博主以“你好,世界!”举例,在项目实际应用中,小伙伴们编辑最好加入所有常用汉字,可以直接百度常用汉字库。这里附上下载链接:Font/常用汉字库 3500.txt at master · kaienfr/Font · GitHub

【UGUI】TextMeshPro如何配置和使用中文字体

        第三步,将字体文件和字库文件复制到Unity项目的Assets文件夹或其子文件夹中。

        第四步,在Unity中,点击Window,选择TextMeshPro > Font Asset Creator来创建一个新的字体资源(文章末尾对Font Asset Creator所有属性进行解释),将字体文件拖入Source Font File,Atlas Resolution设置为最大,设置Character Set属性为Characters from File,接着将字库文件拖入Character File,其余属性可根据自己需要进行设置,点击Generate Font Atlas开始生成字体图集纹理,等待一段时间,点击Save,保存到Assets文件夹或其子文件夹中。

【UGUI】TextMeshPro如何配置和使用中文字体

        第五步,在层级面板右键创建TextMeshPro(GameObject > UI > Text - TextMeshPro),将保存的文件拖入检视面板,编辑文字“你好,世界!”,接着就出现了一系列的警告,针对这些警告,博主在第二部分提供了解决方案。

【UGUI】TextMeshPro如何配置和使用中文字体

        效果如下:

【UGUI】TextMeshPro如何配置和使用中文字体

         第六步,可能小伙伴们和博主一样,“你好,世界!”每个字符都有一层白色半透明底纹,这是因为TextMeshPro 使用有向距离场的方式渲染,解决方案:将Text(TMP)材质的Shader属性设置为Bitmap。

【UGUI】TextMeshPro如何配置和使用中文字体

         效果如下:

【UGUI】TextMeshPro如何配置和使用中文字体

二、警告及解决方案

        警告1:Unable to add the requested character to font asset [msyhbd SDF]'s atlas texture. Please make the texture [msyhbd SDF Atlas] readable.

        解决方案1:在项目面板中选择字体中包含的图集纹理,然后将检查器更改为调试(Debug)模式,勾选Is Readable。

【UGUI】TextMeshPro如何配置和使用中文字体

        解决方案2:在该字体文件目录下用记事本打开.asset文件,找到m_Isreadable:0,将其修改为1并保存,原理同解决方案1一样,参考:Unity TMPro Unable to add the requested character to font asset - 哔哩哔哩

【UGUI】TextMeshPro如何配置和使用中文字体

        警告2:The character used for Underline is not available in font asset [msyhbd SDF].

        解决方案1:在项目面板中找到TextMeshPro文件,选择Resources > TMP Settings,在检视面板勾选Disable warnings,即关掉警告,下面给出解决方案2从根本上修复这个警告。

【UGUI】TextMeshPro如何配置和使用中文字体

        解决方案2:警告翻译为:“用于下划线的字符在字体资产 [msyhbd SDF] 中不可用”,即无法使用下划线样式,针对此警告,只需在字符集加上下划线字符,重复以上步骤即可。 参考:Unity笔记 警告The character used for Underline is not available in f - 哔哩哔哩

【UGUI】TextMeshPro如何配置和使用中文字体

        警告3:“The character with Unicode value \u3002 was not found in the [msyhbd SDF] font asset or any potential fallbacks. It was replaced by Unicode character \u25A1 in text object [Text (TMP)].”

        解决方案:警告翻译为:“在 [msyhbd SDF] 字体资源或任何潜在的回退中找不到具有Unicode 值 \u3002 的字符。它在文本对象 [Text (TMP)] 中被 Unicode 字符 \u25A1 取代。”即我们输入了字库文本中没有的字符,解决方案可同警告2解决方案1一样,关掉警告,这样即便我们输入了字库文本中没有的字符,只有Scene界面会出现Unicode 字符 \u25A1 ,而不会出现警告,便于项目调试。

三、Font Asset Creator属性介绍

        Unity官方已经对所有属性进行了解释(Font Asset Creator | TextMeshPro | 4.0.0-pre.2),为便于各位小伙伴理解,翻译解释如下:

        Source Font File:选择用于生成 Text Mesh Pro 字体资源的字体。

        Sampling Point Size:设置用于生成字体纹理的字体大小(以磅为单位)。

                Auto Sizing(默认):使用尽可能大的磅值,同时仍然适合纹理上的所有字符。        

                Custom Size:使用自定义磅值,在文本框中输入所需的大小,使用此设置可实现对仅位图字体的像素精确控制。

        Padding:指定字体纹理中字符之间的间距(以像素为单位)。填充越大,过渡越平滑,从而允许更高质量的渲染和更大的效果,如粗轮廓。

        Packing Method:指定如何使字符适合字体纹理。

                Optimum:查找仍然适合纹理中所有字符的最大可能自动字体大小。

                Fast(默认):更快地计算字符打包,但可能使用比优化模式更小的字体大小。

        Atlas Resolution:设置字体纹理的大小宽度和高度,以像素为单位,使用 SDF 字体时,更高的分辨率会产生更精细的渐变,从而产生更高质量的文本。

        Character Set:选择预定义的字符集。

                ASCII(默认):包括 ASCII 字符集中的可见字符。

                Extended ASCII:包括扩展 ASCII 字符集中的可见字符。

                ASCII Lowercase:仅包含 ASCII 字符集中可见的小写字符。

                ASCII Uppercase:仅包含 ASCII 字符集中可见的大写字符

                Numbers+Sysbols:仅包括来自 ASCII 字符集的可见数字和符号。

                Custom Range:输入一系列十进制值或值范围,以指定要包括的字符。

                Unicode Range(Hex):输入一系列 unicode 十六进制值或值范围,以指定要包含的字符。

                Custom Characters:输入字符序列以指定要包含的字符。

                Characters from File:包括小伙伴们指定的文本资源中的所有字符。

        Render Mode:指定输出字体图集时要使用的渲染模式。

                SMOOTH:将图集渲染为抗锯齿位图。

                RASTER:将图集渲染为非抗锯齿位图。

                SMOOTH_HINTED:将图集渲染为抗锯齿位图,并将字符像素与纹理像素对齐以获得更清晰的结果。

                RASTER_HINTED:将图集渲染为非抗锯齿位图,并将字符像素与纹理像素对齐以获得更清晰的结果。

                SDF:使用较慢但更准确的 SDF 生成模式渲染图集,并且没有过采样。

                SDFAA:使用更快但不太准确的 SDF 生成模式渲染图集,它生成的字体图集足以满足大多数情况。

                SDFAA_HINTED:使用更快但不太准确的 SDF 生成模式渲染图集,并将字符像素与纹理像素对齐以获得更清晰的结果,它生成的字体图集足以满足大多数情况。

                SDF8:使用较慢但更准确的 SDF 生成模式和 8 倍过采样渲染图集。

                SDF16:使用更慢但更准确的 SDF 生成模式和 16 倍过采样渲染图集。

                SDF32:使用较慢但更准确的 SDF 生成模式和 32 倍过采样渲染图集。将此设置用于具有复杂或小字符的字体。

        Get Kerning Pairs:启用此选项可从字体复制字距调整数据。

        Generate Font Atlas:生成字体图集纹理。文章来源地址https://www.toymoban.com/news/detail-469296.html

到了这里,关于【UGUI】TextMeshPro如何配置和使用中文字体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【linux】SSH终端Putty配置:文件上传/下载、显示中文字体、自动登录

    一篇博客介绍了12种SSH终端工具的比较:https://www.cnblogs.com/Zz1tai/p/15668230.html 注:Aechoterm官网上说是有一些色调可调的,可能是后期更新的。 一般远程服务器终端最常用的是xshell,功能更全面,而使用Putty主要是轻量级,没有那么多复杂的功能。每个人使用需求不同可进行不同

    2024年01月20日
    浏览(40)
  • 记一次linux系统使用dockerfile编写容器支持中文字体环境

    今天研发开发一个网上受理需要容器支持中文环境否则服务启动起来会出现中文乱码。 解决思路: 1、先把jar把在本地环境直接加参数运行如果运行起来无乱码说明本地的字体文件就可以直接COPY到容器中使用,如果还是乱码就说明本地的字体文件不支持中文环境,就需要下载

    2024年02月09日
    浏览(39)
  • Python中使用matplotlib时显示中文乱码_(或更改字体)

            在使用matplotlib绘制可视化图表时,图表的中文显示乱码,只能正常显示英文内容,如下图所示:      一般显示乱码是由于编码问题导致的,而matplotlib 默认使用ASCII 编码,但是当使用pyplot时,是支持unicode编码的,只是默认字体是英文字体,导致中文无法正常显

    2024年02月12日
    浏览(36)
  • docker部署使用EasyExcel导出因未安装中文字体报错及处理方法

    本地使用EasyExcel模板方式导出表格无问题,当项目打包成docker镜像运行时报空指针异常,具体提示找不到字体,错误如下。 原因是docker容器中没有安装中文字体,导出时获取不到字体报空指针异常。 本处理方法时手动规避方法,可以根据以下步骤写成shell脚本,或者配置在

    2024年02月03日
    浏览(24)
  • Rocky(Centos)安装中文字体(防止中文乱码)

    运行下列命令 若出现,下面截图,则需要安装字体管理软件  安装字体库,运行: 当看到下图的提示信息时说明已安装成功: 1)windows系统中就可以找到,打开c盘下的Windows/Fonts目录: 如上图,我们只需要将我们需要的字体拷贝出来并上传至linux服务器即可(例如:宋体和黑

    2024年02月09日
    浏览(40)
  • unity添加中文字体

    1.随便打开一个unity工程 2.将字体文件拖至project目录下 3.点击Window-TextMeshPro-Font Asset Creator 4.将中文文件(*.txt)拖至Project路径下 5.修改设置如下 6.点击Generate Font Atlas开始生成

    2024年03月22日
    浏览(45)
  • CentOS中安装中文字体

    在CentOS上安装宋体字体的过程可能因为不同版本而有所差异。以下是一种常见的安装宋体字体的方法: 1.下载SimSun.ttf 宋体字体文件并把对应字体的的ttf文件拷到/usr/share/fonts/的目录下如:     /usr/share/fonts/chinese/SimSun.ttf 2.安装宋体字体: cd /usr/share/fonts/chinese/     //进入字

    2024年02月07日
    浏览(40)
  • docker Dockerfile增加中文字体支持

    很多时候在部署应用时候,因docker没有中文字体支持,导致中文乱码问题,需要在构建Docker镜像时候增加中文字体支持 1、下载中文字体ttl文件点击下载 2、将中文字体文件上传到同需要构建的文件放在同一目录 3、编写Dockerfie配置安装中文字体

    2024年02月04日
    浏览(34)
  • Ubuntu下让matplotlib显示中文字体

    参考文章: https://zodiac911.github.io/blog/matplotlib-chinese.html Ubuntu下python的matplotlib库显示中文字体很不方便,本文快速解决这个问题。 Ubuntu的字体目录在 /usr/share/fonts 下,自带的中文字体很烂,先安装一下中文字体库。 终端输入: 你会发现在 /usr/share/fonts/MyFonts 下添加了很多新字

    2024年02月07日
    浏览(32)
  • 树莓派系统汉化教程(汉语+中文字体库+中文输入法pinyin(拼音))

    1.在putty登录树莓派,在命令行输入sudo nano raspi-config,然后回车如下图: 2.选择 5 Localisation Options Configure language and regional settings,并回车 结果如下图: 因为Timezone(时区)/keyboard(键盘)/WLAN country (wifi国家),用官方的烧录器烧录时已经设置好了,不会设置的可以参考上一

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包