当前位置: 首页 > news >正文

【Unity基础】Unity中如何导入字体?

在Unity中,不能像其他软件一样直接使用字体文件,需要通过FontAssetCreator将其转换成Texture的Asset文件,然后才能使用。

本文介绍了使用FontAssetCreator导入字体的过程,并对其参数设置进行了说明。

Font Asset Creator 是 Unity 中 TextMesh Pro 插件的一个功能模块,能够将 Unity 的字体资源转化为 TextMesh Pro 字体资产。通过它,可以创建带有 Signed Distance Field (SDF) 字体和位图字体的资产。

每当创建新的字体资产时,TextMesh Pro 会自动生成该字体资产,以及对应的图集纹理和材质。创建完成后,可以选择删除用于生成的 Unity 字体资产(如果需要保留以便于重新生成,可以放置在场景中)。

创建字体资产的步骤

1. 在开始之前,确保已经将想要使用的字体(通常是 TrueType 格式的 .ttf 文件)导入到项目中。

2. 在菜单中选择:Window > TextMesh Pro > Font Asset Creator,打开字体资产创建器。

3. 选择一个 Source Font File,即希望转换为 TextMesh Pro 字体的 Unity 字体资产。

4. 选择Character Set,如果是英文字体可以选择ASCII,只需要包括所有大小写字母和常用标点符号就够了。如果是非英文字体,可以选择“Characters from File”,在Character File里选择字符文件(字符文件是纯文本文件,也需要事先添加到Unity项目文件夹里)。

5. 点击“Generate Font Atlas”,就可以生成Asset文件,图集和字体资产的信息会显示在纹理预览区域。继续调整设置并重新生成图集,直到获得满意的效果。

6. 点击右下角的“Save”或“Save as”,可以将Font Asset文件保存在项目文件夹中。

7. 在Hierarchy中,选中要设置字体的text,在Inspector中设置Font Asset时就可以选择相应的字体了。

设置自定义字体时,重点在于Font Asset的生成。尤其是非英文字体的生成。所以下面对Font Asset Creator中的参数进行了说明,这样在使用时更加有针对性。

以下是 Font Asset Creator 设置的详细说明,将其整理为表格以便于理解:

属性参数功能描述
Source Font File选择用于生成 TextMesh Pro 字体资产的字体文件。此字体文件不会被自动打包到项目中,除非在项目其他位置使用它,或将其放置在 Resources 文件夹中。可以使用默认的 TextMesh Pro 字体资产,也可以导入自己的字体。
Font Face为位图字体资产应用基本样式。SDF 字体的样式配置在材质的 Shader 中进行。
Normal不带样式生成字符。
Bold, Italic, Bold_Italic生成加粗、斜体或加粗斜体的字体资产,可以为粗体和斜体设置强度值。
Outline生成带轮廓的字体资产。
Sampling Point Size设置用于生成字体纹理的字体大小,以点数为单位。
Auto Sizing选取尽可能大的点数,同时确保所有字符适合纹理。常用于 SDF 字体。
Custom Size使用自定义字体大小,输入所需大小以像素精确地控制仅限位图字体的字体大小。
Padding指定字体纹理中字符之间的像素间距。较大的填充可带来平滑的过渡,从而实现更高质量的渲染效果,适用于厚边框等效果。512x512纹理时,填充为5通常即可。
Packing Method指定如何将字符放入字体纹理。
Fast更快速地进行字符打包,但可能比Optimum模式的字体尺寸小。用于测试字体设置时选用。
Optimum自动找到合适的字体大小以适合所有字符。通常用于生成最终字体纹理。
Atlas Resolution设置字体纹理的宽度和高度,以像素为单位。512x512的分辨率适合包括 ASCII 字符的字体,如果字符较多可能需要更大的分辨率或多个图集。高分辨率有助于获得更精细的渐变效果,提高文本质量。
Character Set指定需要包含的字符集,字体文件中的字符不会自动包含在字体资产中。可以选择预定义字符集、提供需要包含的字符列表,或包括现有字体资产或文本资产中的所有字符。
ASCII包含 ASCII 字符集中的可见字符。
Extended ASCII包含扩展 ASCII 字符集中的可见字符。
ASCII Lowercase包含 ASCII 字符集中仅有的小写字符。
ASCII Uppercase包含 ASCII 字符集中仅有的大写字符。
Numbers + Symbols包含 ASCII 字符集中仅有的数字和符号。
Custom Range包含用户定义的字符范围,可输入十进制值或值的范围来指定要包含的字符。例如 32-126,160,8230。
Unicode Range (Hex)包含用户定义的字符范围,以 Unicode 十六进制值输入指定字符。例如 20-7E,A0,2026。
Custom Characters包含用户定义的字符范围,按字符逐个输入字符即可,例如 abc123*#%。
Characters from File包含指定的文本资产中的所有字符。适用于保存字符集的情况。
Render Mode指定字体图集的输出渲染模式。
SMOOTH_HINTED将图集渲染为抗锯齿位图,同时将字符像素与纹理像素对齐,提升清晰度。
SMOOTH将图集渲染为抗锯齿的位图。
RASTER_HINTED将图集渲染为无抗锯齿位图,并对齐字符像素和纹理像素。
RASTER将图集渲染为无抗锯齿的位图。
SDF使用较慢但更准确的 SDF 生成模式,不进行超采样。
SDF8使用较慢但更准确的 SDF 生成模式,8x 超采样。
SDF16使用较慢但更准确的 SDF 生成模式,16x 超采样。
SDF32使用较慢但更准确的 SDF 生成模式,32x 超采样,适用于复杂或较小的字符。
SDFAA_HINTED使用较快但相对不太精确的 SDF 生成模式,并对齐字符像素,适用于大多数情况。
SDFAA使用较快但相对不太精确的 SDF 生成模式,适用于大多数情况。
Get Font Features该选项决定了在向字体资产中添加新字符和字形时,是否从源字体文件中检索 OpenType 字体特性。禁用此选项将阻止提取字体特性。

创建字体资产的建议

字体纹理中的字符之间需要有一定的填充,以便能独立渲染字符。这一填充大小以像素为单位,填充还为 SDF 渐变提供了空间。通常,填充为 5 即可适应 512x512 的纹理。

大多数字体在包括所有 ASCII 字符时,512x512 的分辨率已经足够支持。如果需要支持数千个字符,则可能需要使用更大的纹理,甚至多个图集。在这种情况下,可以将常用字符放在主字体资产中,而将其他字符分散到备用字体资产中。

比如在生成全字符的中文字体时,就需要将其设置的尽量大,比如8192x8192,并且生成时间也将随之增长,一般在10~30分钟之间。所以如果没有必要,就可以使用自定义的character file,只包括自己需要的字符即可。

参考资料:

1. Font Asset Creator | TextMeshPro | 4.0.0-pre.2

2.  Font Assets | TextMeshPro | 4.0.0-pre.2

相关文章:

【Unity基础】Unity中如何导入字体?

在Unity中,不能像其他软件一样直接使用字体文件,需要通过FontAssetCreator将其转换成Texture的Asset文件,然后才能使用。 本文介绍了使用FontAssetCreator导入字体的过程,并对其参数设置进行了说明。 Font Asset Creator 是 Uni…...

使用NVIDIA GPU加速FFmpeg视频压制:完全指南

引言 在视频处理领域,FFmpeg是一个强大的工具。结合NVIDIA的硬件编码器NVENC,我们可以实现快速高效的视频压制。本文将详细解析一个实用的视频压制命令,帮助你理解每个参数的作用。 核心命令 ffmpeg -i input.mp4 -vf scale640:360 -c:v h…...

Python学习:scipy是什么?

文章目录 一、Scipy简介二、Scipy的组成部分1. 基础功能:2. 特殊函数:3. 优化:4. 积分:5. 插值:6. 信号处理:7. 图像处理:8. 统计分布:9. 空间数据结构和算法:10. 稀疏矩…...

spark的学习-05

SparkSql 结构化数据与非结构化数据 结构化数据就类似于excel表中的数据(统计的都是结构化的数据)一般都使用sparkSql处理结构化的数据 结构化的文件:JSON、CSV【以逗号分隔】、TSV【以制表符分隔】、parquet、orc 结构化的表:…...

SQL注入(SQL Injection)详解

SQL注入(SQL Injection)是一种代码注入技术,它通过在应用程序的输入字段中插入或“注入”恶意的SQL语句,从而操控后端数据库服务器执行非预期的命令。这种攻击方式常用于绕过应用程序的安全措施,未经授权地访问、修改或…...

深入解析 OpenHarmony 构建系统-2-目录结构与核心组件

引言 OpenHarmony作为一款面向全场景的分布式操作系统,其构建系统在开发过程中扮演着至关重要的角色。本文将详细介绍OpenHarmony构建系统的目录结构和核心组件,帮助开发者更好地理解和使用这一强大的工具。 目录结构概览 以下是OpenHarmony构建系统的目录结构,每个目录和…...

网络安全应急响应(归纳)

目录 一、概述二、理论 系统排查 系统基本信息 windowsLinux用户信息 WindowsLinux启动项:开机系统在前台或者后台运行的程序,是病毒等实现持久化驻留的常用方法。 WindowsLinux任务计划:由于很多计算机都会自动加载“任务计划”&#xff0c…...

【网络协议栈】网络层(上)网络层的基本理解、IP协议格式、网络层分组(内附手画分析图 简单易懂)

绪论​ “It does not matter how slowly you go as long as you do not stop.”。本章是自上而下的进入网络协议栈的第三个篇幅–网络层–,本章我将带你了解网络层,以及网络层中非常重要的IP协议格式和网络层的分片组装问题,后面将持续更新网…...

数据库类型介绍

1. 关系型数据库(RDBMS) 关系型数据库是最常见的一类数据库,它们通过表(Table)来存储数据,表之间通过关系(如主键和外键)来关联。 • MySQL:开源的关系型数据库管理系统&…...

一步一步从asp.net core mvc中访问asp.net core WebApi

"从asp.net core mvc中访问asp.net core WebApi"看到这个标题是不是觉得很绕口啊,但的确就是要讲一讲这样的访问。前面我们介绍了微信小程序访问asp.net core webapi(感兴趣的童鞋可以看看前面的博文有关WEBAPI的搭建),这里我们重点不关心如何…...

linux中kubectl命令使用

一.命令介绍 kubectl 是 Kubernetes 集群管理的命令行工具,用于与 Kubernetes API 交互。你可以通过它来管理和操作 Kubernetes 集群中的资源,如 Pod、Deployment、Service 等。下面是如何在不同操作系统上下载和使用 kubectl 的方法。 二.下载 kubect…...

Linux 系统结构

Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。 1. linux内核 内核是操作系统的核心,具有很多最基本功能,它…...

ESP32-S3设备智能化升级,物联网无线AI语音交互,让生活更加便捷和有趣

在人工智能和物联网技术的推动下,无线AI语音交互技术正在成为智能设备的新选择。这种技术的发展,不仅改变了我们与设备的沟通方式,更开启了一个新的智能交互方案。 想象一下,通过简单的语音指令,就能控制家中的灯光、…...

Python的函数(补充浅拷贝和深拷贝)

一、定义 函数的定义:实现【特定功能】的代码块。 形参:函数定义时的参数,没有实际意义 实参:函数调用/使用时的参数,有实际意义 函数的作用: 简化代码提高代码重用性便于维护和修改提高代码的可扩展性…...

oracle查询字段类型长度等字段信息

1.查询oracle数据库的字符集 SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER NLS_CHARACTERSET; 2.查询字段长度类型 SELECT * FROM user_tab_columns WHERE table_name user AND COLUMN_NAME SNAME 请确保将user替换为您想要查询的表名。sname为字段名 这里的字…...

C语言 | Leetcode C语言题解之第559题N叉树的最大深度

题目: 题解: /*** Definition for a Node.* struct Node {* int val;* int numChildren;* struct Node** children;* };*/int maxDepth(struct Node* root) {if (!root) {return 0;}int depth 0;// 创建空队列const int qCap 10e4 1;str…...

光流法(Optical Flow)

一、简介 光流法(Optical Flow)是一种用于检测图像序列中像素运动的计算机视觉技术。其基于以下假设: 1.亮度恒定性假设:物体在运动过程中,其像素值在不同帧中保持不变。 2.空间和时间上的连续性:相邻像素之…...

Rancher的安装

1. 概览 1.1 用户界面优势 Rancher 提供了一个直观的图形用户界面(GUI)。对于不熟悉 Kubernetes 复杂的命令行操作(如使用kubectl)的用户来说,通过 Rancher 的界面可以方便地进行资源管理。例如,用户可以在…...

【Linux】获得同一子网下当前在线设备IP/Latency/MAC 通过nmap指定CIDR扫描当前在线设备

【Linux】获得同一子网下当前在线设备IP/Latency/MAC 通过nmap指定CIDR扫描当前在线设备 通过路由器的后台,查看当前在线设备,受到网卡版本的影响,有时会有部分设备看不见MAC和分配的IP。此时,可以借助命令行工具扫描子网下所有连…...

Ubuntu22.04安装DataEase

看到DataEase的驾驶舱,感觉比PowerBI要好用一点,于是搭建起来玩玩。Dataease推荐的操作系统是Ubuntu22.04/Centos 7。 下载了Ubuntu22.04和DataEase 最新版本的离线安装包 一.安装ubuntu22.04 在安装的时候,没有顺手设置IP地址信息&#xff…...

Taro React-Native IOS 打包发布

http网络请求不到 配置 fix react-native facebook::flipper::SocketCertificateProvider‘ (aka ‘int‘) is not a function or func_rn运行debug提示flipper-CSDN博客 Xcode 15(iOS17)编译适配报错_no template named function in namespace std-CS…...

【卷积神经网络CNN】基于深度学习动物图像识别系统(完整系统源码+数据库+开发笔记+详细部署教程+启动教程)✅

目录 【卷积神经网络CNN】基于深度学习动物图像识别系统(完整系统源码数据库开发笔记详细部署教程启动教程)✅ 一、项目背景 二、项目目标 三、项目创新点 四、项目功能 五、开发技术介绍 六、数据库设计 七、启动步骤 八、项目功能展示 九、开…...

图像处理椒盐噪声

椒盐噪声,也称为脉冲噪声,是图像中经常见到的一种噪声。它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。这些白点和黑点会在图像中随机分布,导致图像中…...

推荐一款完全开源的多端仓库管理系统

简介 模块 安装 UI展示 开源地址 今天给大家介绍一款完全开源的仓库管理系统,本系统采用Python语言开发。 简介 该库存管理系统是目前福特亚太区售后物流仓储供应链流程。离开福特后,开始了这个项目。为了帮助一些有需要的人。OneAPP 理念。支持扫…...

python 爬虫 入门 六、Selenium

Selenium本来是一个自动测试工具,用于模拟用户对网站进行操作。在爬虫领域也有其用处。 一、下载安装Selenium及附属插件 pip install Selenium 安装完成后还需要安装一个浏览器驱动,来让python能启动浏览器。 如果是Edge或者其他基于Chromium的浏览器…...

ReactPress:重塑内容管理的未来

ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议,欢迎一起共建,感谢Star。 ReactPress:重塑内容管理的未来 在当今信息爆炸的时代,一个高效、易用的内容管理系统&#xff0…...

w035基于web的学科竞赛管理

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文件&#xff0…...

Java:JVM

1.JVM内存区域的划分 一个Java写的程序跑起来,就得到了一个Java进程 JVM 上面运行的字节码指令; 进程:操作系统资源分配的基本单位; 内存区域的划分: 1.程序计数器 在内存空间里(比较小的空间),保存了下一个要执行的指令的内存地址(元数据区的地址); 这里的"下一条…...

Windows下mysql数据库备份策略

Windows下mysql的增量备份和全量备份,并利用schtasks设置定时任务执行bat脚本。 一、备份要求 序号 备份类型 备份频次 备份时间 1 增量备份 每周一-每周六各一次 18:00:00 2 全量备份 每周日一次 18:00:00 二、备份方法 2.1增量备份 2.1.1准备工作…...

基于SSM的校园美食交流系统【附源码】

基于SSM的校园美食交流系统 效果如下: 管理员主页面 用户主页面 美食信息页面 美食资讯页面 修改密码页面 论坛中心页面 研究背景 随着高校信息化建设的不断推进,校园生活日益丰富多样,学生对于美食的需求与探索也愈发旺盛。然而&#xff…...

备份的网站建设方案书/大数据网站

在编译链接的时候链接器需要将符号解析为相应的对象。 首先有这样几个原则:在同一个命名空间内的符号,是相互可见的。 这里的命名空间是一个很抽象的概念,例如一个function本身可以看作一个命名空间,它所有的局部变量,…...

做网上贸易哪个网站好/百度网址入口

localhost拒绝了我们的连接请求的解决方案一、背景描述二、问题原因三、解决方案方案一:重启前端和后端服务方案二:关闭被占用的端口程序,或者换新的其他端口重启服务方案三:启动Windows功能一、背景描述 前端页面使用的是vue&am…...

wordpress远程附件代码/企业推广是做什么的

2019独角兽企业重金招聘Python工程师标准>>> 今天在执行一个其他项目的数据库初始化sql脚本时,报了个这样的错: Cannot load from mysql.proc. The table is probably corrupted 看了下报错行数,是一个CREATE FUNCTION语句&#x…...

莆田免费建站模板/拉新项目官方一手平台

CIW Fireworks MX2004认证考试试题 难度级别: 难*** 中** 易* 1. 单项选择题(共25题,每小题2分,共50分。每小题选择结果正确得2分,选择结果错误或不选择均不得分。)克隆和 Duplicate 之间的区别是什么…...

wordpress建站心得/网络推广平台有哪些公司

题意 TTT 组数据,每组数据给出一个 2N2N2N 个点的二分图,给出右边 nnn 个点的权值,设 f(S)f(S)f(S) 表示所有与左边集合 SSS 有连边的右边点的点权和。求 f(S)f(S)f(S) 的 gcd⁡\gcdgcd。 分析 对于右边的点: 如果没有连边&…...

在线设计工具的网站怎么做/百度地图导航2021最新版

本题考查 动态规划问题(LCS算法),因为题目要求元素可重复,所以判断赋值的状态方程与原始LCS有区别 动态规划介绍 动态规划的核心就是:根据之前已经解决的子问题的解来求解父问题,换句话说“先解决子问题…...