关于Unity中的NGUI字体
NGUI字体类型
1: UIFont字体,UIFont类实现的
2: TTF动态字体的使用
3: BBCode的特殊字体的使用
4: NGUI字体制作
5: BMFont字体制作和艺术字体的制作
6: UILabel的使用
UI Font字体
UI Font组件属性
Font Type:字体格式,Bitmap位图,Reference引用(可以引用TTF字体),Dynamic动态字体
Atlas:图集,文字放在文字图片里面
Pixel Size:像素大小
Sprite Details:精灵的详诉,宽高,是否粗体,是否斜体
Duplicate:复制一份
Add a Shadow:添加一个阴影
Add a Soft Outline:添加一个软轮廓
Add a Transparent Border:添加一个透明的边框
Add a Clamped Border:添加一个裁剪的边框
TTF动态字体实例
1.创建一个新场景,删除摄像机和灯光
2.创建一个新文件夹NGUI2,把TTF字体资源msyh.ttf(第75)拖进NGUI2中
3.新建一个Label控件,NGUI---->Create---->Label
4.设置Label节点的UI Label组件第一行第一栏为Unity,第三栏选择刚才导入的TTF字体资源msyh.ttf,在Text里面输入文字,可以看见Scene视图里面显示文字
5.Overflow属性的类型
a.ShrinkContent,总是显示所有文字,根据当前的width和height进行缩放
b.ClampContent,一看到Clamp就想起Clamp函数,也就是不管文本多少个字,根据当前的width和height来显示,超出部分不显示
c.ResizeFreely,会对当前的文字长度和行数来调整,UILabel的width和height,基本上是只在一行显示,超出的部分不显示
d.ResizeHeight,保持宽度不变,必要时增加高度。
6.Alignment对齐方式,Gradient渐变字的颜色,Effect效果(阴影Shadow,轮廓Outline,XY表示阴影偏移量)
7.Flaot Spacing每个文字之间的间距
X:设置字与字之间到间隔,可以为负数,设置得当(不断减小X的值)可以反序,也就是产生镜像效果
Y: 设置行与行之间的间隔。
8.Max Lines最大行数,用来控制最多要多少行。用0表示不限制。如果设置成n的话,那么超过n的行的文字将不会显示
BBCode的特殊字体实例
1.在上一个例子的Text栏里面写,用BBCode标记实现字体格式的设置
[b]Bold[/b] 粗体
[i]italic[/i] 斜体
[u]underline[/u] 下划线
[s]strikethrough[/s] 删除线
AA[sub]sub[/sub] 下标
BB[sup]sup[/sup] 上标
[00ff00]设置颜色[-] 设置显示颜色
[url=http://www.cnblogs.com/mrzivchu/][u]博客[/u][/url] 链接
例如设置颜色:
UILabel的Text内容为:[99ff00]n[-]gui: tools

2.效果

NGUI字体制作
字体其实是一个.prefab预制体,msyh.ttf是字模,里面有各种类型的字,数字字母各种标点符号之类
1.NGUI---->open---->Font Maker,字体文件的制作工具,这个是NGUI自带的工具
Generated Bitmap:产生位图,或者叫艺术字,基于图片的文字
Imported Bitmap:导入位图,针对于用UIFont,或者是showBox(一些制作艺术字的工具)
Dynamic:动态字体,官方有替代的更好的方案。要使用动态字体,不必创建UIFont,只需要在UI label中选择Unity,再将ttf文件拖入font中即可。
缺点:动态字体不能作为一个atlas的一部分,所以使用动态字体必然要增加至少一个draw call。而且ttf文件一般较大,会大大地增加包大小
2.选择Input:
Type为Generated Bitmap
Source为我们刚才导入的msyh.ttf
Size为32
Characters设置字体的可匹配内容,汉字写在Custom自定义里面
选择Output:
Atlas---->none
3.点击Create the Font,生成三个文件,myfont01.mat,myfont01.png,myfont01.prefab
4.跟换新字体,Label---->UI Label---->第一栏NGUI---->第二栏myfont01.prefab,只有输入刚才在Characters里设置的内容,才会显示在视图中
NGUI动态字体制作
1.NGUI---->open---->Font Maker
2.选择Input:Type为Dynamic,Source为我们刚才导入的msyh.ttf
3.点击Create the Font,生成一个文件dynamicfont.prefab,注意动态字体不能被制作成图集的一部分,而且使用动态字体会导致至少一个额外的draw call,性能会低
4.跟换新字体,Label---->UI Label---->第一栏NGUI---->第二栏dynamicfont.prefab,可以输入任何的汉字或者字母
BMFont字体制作和艺术字体的制作
1.使用其他外部工具制作字体bmfont64.exe,install_bmfont_1.13.exe(第75)
第三方的字体制作工具
BMFont---->程序员常用
http://www.angelcode.com/products/bmfont/
shoebox---->美术常用,是PS的一个插件,要先下载PS,很多公司在用,艺术字
http://childhood.logdown.com/posts/190580/-details-using-shoebox-produce-bitmap-fonts
2.这里以BMFont工具为例子
a.打开bmfont64.exe
b.options配置,设置font settings---->Arial。其他默认
c.options配置导出Export options---->Bit depth 32,Textures png
d.选择要匹配的字模内容

e.导出save bitmap font as---->得到bmfont01.fnt和bmfont01.png
3.使用第三方工具创建出来的字体,把bmfont01.fnt和bmfont01.png复制到Resources文件夹里
4.NGUI---->open---->Font Maker,
选择Input:
Type为Imported Bitmap
Font data为我们刚才导入的bmfont01.fnt
Texture为我们刚才导入的bmfont01.png
选择Output:
Atlas---->none
5.点击Create the Font,多生成两个个文件,bmfont01.mat,bmfont01.prefab,现在一共有四个文件
6.跟换新字体,Label---->UI Label---->第一栏NGUI---->第二栏bmfont01.prefab,只有输入刚才在字模里设置的内容,才会显示在视图中
7.BMFont工具还可以从外部导入的文件中选取字模
a.下载Notepad++,打开Notepad++,设置编码---->转为UTF-8编码格式
b.写汉字,保存到英文路径下bmfont02.txt
c.打开BMFont工具,Options---->Font Settings---->Font---->Microsoft YaHei UI
d.Edit---->Select chars from file
e.导出save bitmap font as---->得到bmfont02.fnt和bmfont02.png
8.BMFont工具制作已经有单字图片的艺术字
a.打开BMFont工具,Edit---->open Image Manager
b.Image---->Import Image---->选中单字图片Num1.png,ID就是这个单字的ASCII值,重复操作,直到单字图片都被导入

c.Options---->Font Settings---->Width Height1024 1024
d.导出save bitmap font as---->得到bmfont03.fnt和bmfont03.png
注意:
1.Game视图,state栏可以查看游戏性能,draw call越低性能越高,SetPass calls越低性能越高
2.UILabel还有一个Symbols选项,他有三个值:None,Normal,Colored,选择None,那么以 :) 这样形式显示的图片将不会展示,选择Normal(默认)将正常展示,选择Colored,
那么图片将会被UILabel下的Color Tint所选择的颜色遮盖!其实这个Color Tint是对文字进行着色的,选择Colored那么也就是意味着图片也和文字应用同样的颜色!
关于Unity中的NGUI字体的更多相关文章
- 关于Unity中的NGUI和UGUI
一.用Unity开发2D游戏,有三套关系 1.GUI:Unity本身自带的GUI 2.NGUI:以前在Unity中广泛来做2D的,是第三方的包,需要安装 3.UGUI:Unity5.X后(其实是Uni ...
- Unity中提升像素字体清晰度
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Unity5.6.0f3 Unity UI系统是非常好的,但默认情况下,使用像像素艺术风格游戏那样需要非常锋利的边框的字体 ...
- 关于Unity中的NGUI精灵
NGUI精灵实例 1.创建Unity项目工程和文件目录,保存场景 2.创建一个精灵NGUI---->Create---->Sprite,发现它的UI Sprite组件的贴图属性只支持Atl ...
- 如何精简Unity中使用的字体文件
在游戏开发过程中,为了UI界面美观和显示效果一致性的考虑,大部分游戏都会使用动态字体来表现文字.尤其在这个看脸的时代,一种字体已经无法满足UI同学对美观的需求,因此我们常常发现若干个小则两三兆,大则十 ...
- Unity 使用BMFont制作字体
参考链接:http://blog.csdn.net/huang9012/article/details/32333913,作者:CSDN huang9012 NGUI版本:3.6.5 要自己制作字体, ...
- 【学习中】Unity插件之NGUI 完整视频教程
课程 章节 内容 签到 Unity插件之NGUI 完整视频教程 第一章 NGUI基础控件和基础功能学习 1.NGUI介绍和插件的导入 6月29日 2.创建UIRoot 6月29日 3.学习Label控 ...
- NGUI研究院之在Unity中使用贝塞尔曲线(六)[转]
鼎鼎大名的贝塞尔曲线相信大家都耳熟能详.这两天因为工作的原因需要将贝塞尔曲线加在工程中,那么MOMO迅速的研究了一下成果就分享给大家了哦.贝塞尔曲线的原理是由两个点构成的任意角度的曲线,这两个点一个是 ...
- NGUI研究之在Unity中使用贝塞尔曲线
鼎鼎大名的贝塞尔曲线相信大家都耳熟能详.这两天由于工作的原因须要将贝塞尔曲线加在project中.那么我迅速的研究了一下成果就分享给大家了哦.贝塞尔曲线的原理是由两个点构成的随意角度的曲线,这两个点一 ...
- 关于Unity中NGUI图片精灵响应鼠标的方法
我在Unity里做NGUI的时候发现一个问题. 在Unity2D场景当中,一个精灵图片只要加上了Box Collider或者Box Collider2D,就可以相应OnMouseEnter和OnMou ...
随机推荐
- Atitit 如何设置与安放知识的trap陷阱 知识聚合 rss url聚合工具 以及与trap的对比
Atitit 如何设置与安放知识的trap陷阱 知识聚合 rss url聚合工具 以及与trap的对比 1.1. 安放地点 垂直知识网站csdn cnblogs等特定频道栏目,大牛博客 1 1.2. ...
- 菜鸟调错(四)——Spring与DWR集成,配置文件报错
背景简介: 该项目是市信用办的一个系统,之前好像是一个石家庄的公司负责的.我属于是半路接手.拿到源码后,根据他们给的简(shao)单(de)明(ke)了(lian)的说明把项目搭起来.结果可想而知,项 ...
- angular.js测试框架protracotr安装所需的node版本
protractor内代码的语法是基于ES6的,比如:里面用到了展开运算符“...”,node.js 6.0以下是不支持该语法特性. 所以,安装protractor是不会报错,但运行webdriver ...
- 【ARM】ARM程序规范
1.函数名单词之间用_隔开,每一个字母大写 Uart_Printf() //这个由三星的TEST风格延续下来,因此没有参数时,必须加void,否则ADS会编译报警 void Te ...
- 网页安装ipa
在网页上直接下载并安装ipa,兼容所欲iso,包含没有越狱的 1.html代码 <a href="itms-services://?action=download-manifest&a ...
- 获取windows可执行文件的version信息(版本号)
之前在msdn上Version Information看到文件版本信息的介绍,看着整体比较复杂,就一直没做.现在需要获取ocx文件的版本号,所以查找了下相关资料,比较有用的就是VS_FIXEDFILE ...
- CISCO、H3C、华为三层交换机端口二三层切换命令对比
很多人都在问H3C是否有像CISCO三层端口切换类似的命令 switchport . 答案是肯定的.有.很多人都不知道. 其实无论是思科还是H3C还是华为他们都有这样的命令.但是在H3C和华为中不经常 ...
- 这到底是什么bug?---已结贴
问题描述:全局变量,会被莫名其妙更改!打印为50,后面做比较的时候这个值为0了. 第一,我肯定没有犯低级错误,没有其他的更改,搜索全部代码,没有发现这个变量因为我程序问题导致不符合预期,同时找了两位同 ...
- 关于dubbo的provider和consumer都配置timeout超时时间的情况
本文转自:http://blog.csdn.net/lkforce/article/details/54380201 前言 在dubbo的provider和consumer的配置文件中,如果都配置了t ...
- RedHat 将应用程序添加到 Gnome 菜单中
. . . . . 在RedHat下面安装了Eclipse,是解压缩就能运行的,没有经过脚本安装所以无法自动在菜单中生成链接,但是可以通过手动的方式,步骤如下. 首先在/usr/share/appli ...