如何用Unity制作自定义字体——Custom Font
一、效果图

二、步骤
- 将美术做好的字体分块导入BMFont,使用BMFont工具生成艺术字库;

- 将上面的数据导入unity资源目录下:*.fnt文件中记录每个文字的状态信息;
- 导入*.png图片并设置:勾选AlphaFromGrayscal;
- 右键创建材质球,材质球的Shader指定为GUI/Text Shader,并将Font Texture 换成上面的*.png贴图;
- 右键创建Custom Font,指定其Default Material为刚刚创建的材质;
- 关于常用的Custom Font参数介绍:

- 关于Uv(x,y)的计算以这张图片为例:
图片大小512 x 32 ,而导入时的每个字符图片大小为29 x 27
- 设置好每个字符的参数后,就可以创建Text测试了,将Font替换成刚刚完成的字体文件,就可以开始使用啦!
三、优缺点分析
优点:将美工给的图片做成Custom Font 后,在做UI界面时再也不需要每个字贴一张图片。这时候,只需要做成Text,直接输入需要的文字即可;
缺点:Custom Font 不能改变字体大小、加粗、倾斜等常用字体功能。
四、部分常见问题解决办法
- 字体重叠,不能自动换行问题:
调整第6步参数中的行间距Line Spacing ,至少等于字符高度。例如,原字符为29 x 27 ,那么行间距至少要设置为字符高度27,或者大于27都可; - 字体旋转,不正常显示问题:
取消勾选第6步参数中每个字符的Flipped。勾选Flipped会使字符逆时针旋转90度;
如何用Unity制作自定义字体——Custom Font的更多相关文章
- Expo大作战(十二)--expo中的自定义样式Custom font,以及expo中的路由Route&Navigation
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- fontforge制作自定义字体及在手机上应用举例——张鑫旭
一.看似无关紧要的事件背景 之所以花时间折腾fontforge这个软件,去制作什么自定义的字体是有原因滴. 之前提过,最近我抽空将公司的手机软件HTML5网页化.期间碰到这么一个问题,页面低栏上的电话 ...
- bmp制作自定义字体(cocostudio使用)
工具需求:bmpfont 1.步骤 (1)制作 * 把自己的字体放到一个txt文件中,写个脚本抽离出来, 重复了没有关系 * Edit->Select chars from fils(注意:Ed ...
- ugui 自定义字体
Unity/UI —— 使用字符图片自定义字体(Custom Font) ---[佳] https://blog.csdn.net/qq_28849871/article/details/777190 ...
- iOS自定义字体
1.下载字体库,如:DINCond-Bold.otf 2.双击,在mac上安装 3.把下载的字体库拖入工程中: 4.配置info.plist文件 5.xib方式设置自定义字体:Font选Custom, ...
- Unity3d之-使用BMFont制作美术字体
一.需求 游戏开发中经常遇到需要以美术字(而非字库)做数字显示的情况,通常美术会提供一组包含单个数字(也会有其它字符)的图片,可能是一张整图,也可能是每个数字分开的散图. 在此我以一张整图这种情况为例 ...
- CSS学习笔记----CSS3自定义字体图标
响应式网页字体图标 作者:大漠 日期:2014-01-28 点击:3220 @font-face Responsive 本文由大漠根据Jason的<Responsive Webfont Icon ...
- NGUI系列教程四(自定义Atlas,Font)
今天我们来看一下怎么自定义NGUIAtlas,制作属于自己风格的UI.第一部分:自定义 Atlas1 . 首先我们要准备一些图标素材,也就是我们的UI素材,将其导入到unity工程中.2. 全选我们需 ...
- css3 自定义字体的使用方法
@font-face是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中,随着@font-face模块的出现,我们在Web的开发中使用字体不怕只能使用Web安全字体,你们当中或许有许 ...
随机推荐
- Asprise-OCR的使用
Asprise-OCR下载地址: http://asprise.com/product/ocr/download.php?lang=csharp 其中需要使用的3个dll是AspriseOCR.dll ...
- TabLayout 简单使用。
先上效果图 在使用TabLayout 之前需要导入design包. 我使用的是android studio 只要在build.gradle中加入 compile 'com.android.suppor ...
- mac boot2docker certs not valid with 1.7
摘自:https://github.com/boot2docker/boot2docker/issues/824 An error occurred trying to connect: Get ht ...
- Access denied for user 'root'@'localhost' (using password:YES)
版权所有,未经博主允许不得转载. 今天发现服务器mysql连接不上,报 can't connect to mysql server on 'root'@'ip' (61) 照例ssh到服务器,发现my ...
- Devexpress TileNavPane 控件的使用
TileNavPane提供分层水平菜单(最多三层),适用于窗体菜单内容不多或只有几个功能较常用时,风格专业简洁: 将TileNavPane拖到窗体上后,点击右上角的任务箭头,选“Add Button” ...
- 1,SFDC 开发篇 - 类对象和SOQL查询
1,类对象 & 接口 & 属性 2, Object & SOQL
- Spark Streaming源码解读之State管理之UpdataStateByKey和MapWithState解密
本期内容 : UpdateStateByKey解密 MapWithState解密 Spark Streaming是实现State状态管理因素: 01. Spark Streaming是按照整个Bach ...
- ssh免密码登录机器(使用公钥和秘钥进行加密来实现)
ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 登录的原理: 有机器A(192.168.1.155),B(192.168.1. ...
- [jv-convert] Error 1,[all-recursive] Error 1
g++4.6编译是报错: make profiledbootstrap /var/tmp/gcc4/gcc-4.0.1/sparc-sun-solaris2.8/gcc/gcj -B/var/tmp/ ...
- Oracle 创建dblink
创建dblink语法: create database link link名称 connect to 对方数据库用户名 identified by 对方数据库用户密码 using '对方数据库ip: ...