【Unity】TextMeshPro生成中文字体(附7000常用字)

本文详细介绍了如何在TextMeshPro中创建中文字体,涉及FontAssetCreator设置参数,如字体文件、大小、字符集、渲染模式等,以及生成过程中的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TextMeshPro说明

TextMeshPro中的中文字体需要自己创建,在创建过程中需要用到中文字库。
7000汉字+符号+英文字符集
链接:https://pan.baidu.com/s/1NHXKlbgYhGcrLVvuYsoWJw?pwd=ssnu
提取码:ssnu

1.选择Window/TextMeshPro/Font Asset Creator

在这里插入图片描述

2.Font Asset Creator设置界面如图

在这里插入图片描述
Source Font File:拖入需要使用的字体
Sampling Point Size:设置用于生成字体纹理的字体大小(以磅为单位)

  • Auto Sizeing:自动设置大小
  • Custom Size:自定义大小,在文本框中输入所需的大小

Padding:字间距,填充越大,过渡越平滑,从而允许更高质量的渲染和更大的效果,如粗轮廓。
Packing Method:指定如何使字符适合字体纹理。

  • Optimum:查找仍然适合纹理中所有字符的最大可能自动字体大小。
  • Fast:更快地计算字符打包,但可能使用比优化模式更小的字体大小。

Atlas Resolution:设置字体纹理的大小宽度和高度,以像素为单位
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_HINTED:将图集渲染为抗锯齿位图,并将字符像素与纹理像素对齐以获得更清晰的结果。
  • SMOOTH:将图集渲染为抗锯齿位图。
  • RASTER_HINTED:将图集渲染为非抗锯齿位图,并将字符像素与纹理像素对齐以获得更清晰的结果。
  • RASTER:将图集渲染为非抗锯齿位图。
  • SDF:使用较慢但更准确的 SDF 生成模式渲染图集,并且没有过采样。
  • SDF8:使用较慢但更准确的 SDF 生成模式和 8 倍过采样渲染图集。
  • SDF16:使用更慢但更准确的 SDF 生成模式和 16 倍过采样渲染图集。
  • SDF32:使用较慢但更准确的 SDF 生成模式和 32 倍过采样渲染图集。将此设置用于具有复杂或小字符的字体。
  • SDFAA_HINTED:使用更快但不太准确的 SDF 生成模式渲染图集,并将字符像素与纹理像素对齐以获得更清晰的结果,它生成的字体图集足以满足大多数情况。
  • SDFAA:使用更快但不太准确的 SDF 生成模式渲染图集,它生成的字体图集足以满足大多数情况。

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

Generate Font Atlas:我们把包含中文字体的文件拖入Characters from File中,然后点击此按钮开始生成

3.生成后,如下图

注意:字体越多,生成的时间越长,我自己的电脑生成7000千字,需要三四个小时…
在这里插入图片描述

4.点击Save按钮保存

在这里插入图片描述

5.现在就可以正常使用这个字体了

在这里插入图片描述

### 更改 Unity 6 项目中的 .NET 版本 在 Unity 中,所支持的 .NET 版本取决于引擎本身的版本以及其内部集成的 Mono 运行时环境。对于 Unity 6 项目而言,更改 .NET 版本的过程涉及调整项目的脚本运行时版本和 API 兼容性级别。 以下是关于如何更改 Unity 6 项目中使用的 .NET 版本的具体说明: #### 脚本运行时版本 Unity 提供了两种主要的脚本运行时版本选项:**Legacy (.NET 3.5 Equivalent)** 和 **.NET 4.x Equivalent**。要切换这些版本,请按照以下方法操作: 1. 打开 Unity 编辑器并加载目标项目。 2. 前往菜单栏中的 `Edit` -> `Project Settings` -> `Player`。 3. 在 Inspector 面板中找到 `Other Settings` 部分下的 `Scripting Runtime Version` 下拉框。 4. 将该下拉框更改为 `.NET 4.x Equivalent` 或保持默认值 Legacy [.NET 3.5 Equivalent] 如果需要兼容旧版功能[^1]。 #### 设置 API 兼容性级别 除了脚本运行时版本外,还需要配置项目的 API 兼容性级别以匹配所需的 .NET 标准库版本: 1. 同样进入 `Edit` -> `Project Settings` -> `Player`。 2. 查找 `Api Compatibility Level` 的下拉框。 3. 可选值通常为 `.NET Standard 2.0`, `.NET Framework 4.x` 等。选择适合当前需求的一个版本。 需要注意的是,在某些情况下升级到较新的 .NET 版本可能会引入不向后兼容的变化或者影响第三方插件的功能正常运作。因此建议先备份整个工程再做修改尝试,并仔细测试改动后的行为表现是否符合预期。 另外值得注意的一点是,虽然可以通过上述方式改变基础框架的支持程度,但是具体能够利用哪些特性还受限于 Unity 自身对各个特性的实现状况及其稳定性考量因素的影响[^2]。 ```csharp // 示例代码展示不同API级别的差异之一——异步编程模型 using System.Threading.Tasks; public class ExampleAsync : MonoBehaviour { async void Start() { await Task.Delay(1000); // 使用Task类来简化线程管理逻辑(.Net 4.x及以上才完全支持) Debug.Log("Delayed execution after one second."); } } ```
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值