首页 > 其他分享 >Unity TextMeshPro使用自建中文字体

Unity TextMeshPro使用自建中文字体

时间:2023-08-22 14:13:24浏览次数:34  
标签:文件 中文字体 生成 TextMeshPro Unity 字体

TextMeshPro
  TextMeshPro是Unity新一代字体,是 Unity 的最终文本解决方案。它是 Unity UI Text 和旧版 Text Mesh 的完美替代方案。功能强大、易于使用、性能高效。目前TextMeshPro对中文的支持也还可以,不过默认不能用,需要自己成生成。
  本文就介绍TextMeshPro中文字体文件的生成方法,并且分析有可能出现中文乱码的原因。

中文字体生成方法
  首先准备一个原生的中文字体文件(.ttf、.ttc)等,在Windows10操作系统下的C:\Windows\Fonts目录下有很多Windows自带的字体文件可以使用。找到一个带有中文的字体,直接Ctrl+C、Ctrl+V复制到桌面就可以看到字体文件了,双击字体文件可以预览字体。右键字体文件的属性,如果看到文件只有不到1MB大小,那大概率是没有中文字体的,即使双击后能看到中文,也是Fallback其它字体的。

  这个是微软雅黑字体 常规字体,可以用来生成TextMeshPro字体。添加到Unity中。
  看到字体后,直接右键Create-TextMeshPro-Font Asset就可以生成TextMeshPro字体,但是生成的是动态字体文件,即用到什么字才加入到字体文件中,不用到时不加入。这种方式比较简单,生成的字体文件很小(用到几个字就有几个字的大小),但是性能较差,而且可能会出现很多bug,比如没有加入到的字体,就会显示乱码。

  下面重点讲解静态字体的生成方法。

静态字体生成方法
  在Unity中,打开顶部菜单栏的Window-TextMeshPro-FontAssetCreator,打开面板。

 

  导入TextMeshPro包,不导入的话不会显示文字(英文也不显示)。

  将原生字体文件拖入到Source Font File

 

  各个参数可以在这个博客中查看详细介绍。 Unity 中 创建 TextMeshPro 中文字体
  我要说的是,创建中文字体与英文字体不同,英文字符很少,而且比较简单,所以创建中文时有几个参数是要非常要注意的。
  Character Set最好选Characters from File,Character File指定一个中文字符文件,文件链接:所有中文字符。打开链接后,右键网页,点“网页另存为”,就可以保存所有中文字符文件“chinese.txt”了,然后拖入到上面去。
  Atlas Resolution参数一定要尽可能地很大,Sampling Point Size尽可能地小,才能不出现中文乱码!Padding参数为Sampling Point Size的1/10就可以了。

 

  生成成功后,点击保存,将生成的字体文件拖入到TextMeshPro文字中就可以了。


可以看到,无论怎么放大,字体都不会失真。

标签:文件,中文字体,生成,TextMeshPro,Unity,字体
From: https://www.cnblogs.com/onecyl/p/17648346.html

相关文章

  • Unity 资源加载的两种方式:Resources和AssetBundle最详细的解析(转)
    https://blog.csdn.net/xinzhilinger/article/details/115408934前言:在游戏开发学习初期,游戏体量较小,如果游戏场景需要Asset中的资源,我们可能会通过拖动的方式,将其添加到游戏场景中。而到了实际工作中,会发现再这样做就会使得各种拖动的资源非常复杂,难以查找与维护关于资源:在......
  • GDAL在Unity3D中的使用(一)
    1.上官网选择对应版本  https://www.gisinternals.com/query.html?content=filelist&file=release-1930-x64-gdal-3-6-3-mapserver-8-0-0.zip选择StableReleases然后选择对应得版本点进来后,一般下载第一个 把图中dll放到Unity的Assets文件夹下面我们之前建立的Plugins文件......
  • Unity Custom SRP
    CustomRenderPipelineProjectSetup我们需要在线性空间计算光照,所以设置为Linear。PipelineAssetUnity默认使用默认渲染管线,而在这里,我们通过PipelineAsset来管理自定义管线。进一步的,我们将资产的文件格式写成默认渲染管线的路径格式。默认的Csharp文件是游戏逻辑的文......
  • Unity 物体围绕自身中心旋转而非轴心
    ============================================================在上面两张图坐标中心都在轴中心,但是如果用Rotate进行旋转,第一张是正确的,第二张进行了缩放的物体旋转并不会围绕自身中心旋转.解决的方法://相对于某一个点旋转//point相对于哪个点旋转//axis相对于point的......
  • Unity3D 向量大小比较
    Vector3.sqrMagnitude是指长度的平方,也就是Vector3.magnitude的平方计算向量大小的平方会比计算向量的大小要快很多,因为向量的大小由勾股定理得出,所以有开方操作,如果只是单纯的比较两个向量的大小,可以使用sqrMagnitude会快很多。(获取开始和结束时间经过对比发现没有差别,可能这一......
  • unity 关于如何调整Canvas画布的大小
    如何调节Canvas画布大小呢?1.先在Hierarchy面板选择Canvas对象2.然后在Inspector找到Canvas3.最后找到RenderMouse,在下拉列表中选择WorldSpace选项;即可更改画布的大小。    ......
  • Unity___编辑器开发
    在Editor模式中执行组件内部的public字段/方法1.确定绑定的组件创建GUI按钮[CustomEditor(typeof(Camera))]publicclassTestInspector:Editor{///<summary>///Inspector扩展,在对应的组件中添加按钮,可以点击后调用方法///</summary>publicov......
  • 【未完】Unity Revit与GLTF导出展示笔记
    Revit模型+材质Web网页加载显示......
  • Unity VirtualCamera的使用
    我今天才明白了解VirtualCamera的强大,他几乎可以满足你对相机的所有需求,包括跟随物体,移动视角等等;1.首先我想介绍的是第一个Priority(优先事项),记住它是取决于你相机哪个先看哪个后看的因素,大号在前,小号在后的排序逻辑;2.Follow和LookAt一个是跟随物体,一个是一直保持看他,如果......
  • 燧光Rhino-X+Unity开发笔记
    一.前言  该文档的目的是记录开发过程中使用的燧光RhinoX眼镜和Unity引擎和所遇到的问题及解决方式。二.相关文档1.PhinoX-Unity开发文档2.官网设备介绍三.开发环境1.Unity2020.3.472.Rhino-For-Unity-2020Plugin四.问题列表1.RhinoX设备基本参数如下:  操作系统为......