《Unity 3D NGUI 实战教程》一2.4 制作第一个UI字体

2.4 制作第一个UI字体

Unity 3D NGUI 实战教程

2.4.1 为什么要制作UI字体

在游戏的项目开发中,字体是经常会用到的东西,因为游戏中不论是聊天、公告、提示语还是界面显示,都会涉及用程序来写字。一般来说,会有系统默认字体供我们使用,但是出于以下两个原因我们经常会需要制作独特的字体。

系统字体的风格和美观程度等无法满足我们的需求。
一般来说,系统字体都比较死板、生硬,风格单一,经常无法满足项目需求。例如,我们希望游戏中所有文字都使用楷书来突出中国风,那么则需要我们自己植入楷书字体。再例如,我们需要在某些地方显示一些造型独特的字体,更需要制作我们自己独特的字体文件才能满足这种需求。

应对系统字体丢失的情况。
某些玩家(特别是安卓玩家)如果经常从网上下载一些个性化的字体管理软件,会很容易导致系统字体丢失,这种情况一旦发生,会导致游戏内所有的文字都不能正常显示。为了以防万一,我们需要植入一套自己的字体在游戏资源包内部。

2.4.2 静态字体和动态字体

我们在2.2节中已经介绍了什么是静态字体和什么是动态字体,这里我们来了解一下什么情况下需要静态字体,什么情况下需要动态字体。

当有大面积的字体需求,并且需要的文字几乎涵盖大部分汉字时,我们就需要制作动态字体。与其说是制作动态字体,不如说是植入动态字体,因为在新版的NGUI中,制作动态字体只需要导入一个TTF格式的字体文件即可。

当在某些地方有特殊字体的需求,并且这种字体显示的文字有限时,例如受到伤害时,角色头顶需要飘出一个有艺术效果的数字来表示伤害量,这种字体效果只会显示0~9共10个数字而已,其他地方都用不到这种字体,那么这个时候我们就可以为它制作一个静态字体。

具体来说,静态字体和动态字体有以下实质区别。

静态字体中,如果需要用到的文字不多,打成图集后资源量往往比动态字体小,一个动态字体的TTF格式文件一般为3~6MB。
静态字体可以通过提供一张自定义的含有所需文字的图片和一个配置文件(记录图片哪一块是哪个字的文件)来完成。动态字体只能通过导入整个TTF格式的字体文件完成。
静态字体中的字一般非常有限,只有极少数的字(否则图片资源会非常大),所以应用范围非常小,几乎很少用到静态字体。而动态字体几乎包含所有的文字,被广泛运用。

2.4.3 制作静态字体介绍

静态字体曾经风靡一时,原因是那时候NGUI旧版本对动态字体支持不是很好,所以很多时候得依赖静态字体。目前NGUI对动态字体支持很好,所以静态字体的应用就变得很少,只有在特殊情况下才使用。

要制作静态字体,需要将字筛选出来打成一个图集,并生成一份记录其中哪一块是哪个字的配置文件,这时可以借助一个名为BMFont的软件将其制作出来。制作出这两份文件之后,导入到Unity里。

在Unity界面中,在Project窗口内单击鼠标右键,选择NGUI菜单,选择Open BipMap Font Maker,打开流程和打开Atlas Maker极其相似。Mac电脑可以通过Unity顶部菜单栏中的NGUI菜单打开。

然后会弹出如图2.24所示的界面,在Type中选择Imported Bitmap,然后在Font Data中选择我们之前制作出的那个记录文字位置信息的配置文件(最好是TXT格式),在Texture中选择我们之前制作出的那个文字图集,然后单击主按钮Create the Font,即可创建出一个静态字体,创建出来的字体文件和制作图集得到的文件类似。制作好后,以后我们需要用字体的时候,选择这个字体的预设即可。

注意,制作完成后不要删除导入的那张文字图集和文字位置的配置文件的源文件,如果删除将会导致字体读不出文字。

2.4.4 制作动态字体介绍

在新版本的NGUI中(比如,3.6以后),制作动态字体非常简单,只需要从网上下载一个TTF格式的字体文件即可。然后将这个字体文件导入Unity中就算完成了,以后需要用字体的时候,就能直接调用这个字体。

注意,字体文件要选择简体中文的,TTF文件大小一般为3~6MB,如果远远超出了这个数,一般来说很有可能是字体中包含了很多种语言。

时间: 2024-09-20 08:06:19

《Unity 3D NGUI 实战教程》一2.4 制作第一个UI字体的相关文章

《Unity 3D NGUI 实战教程》一2.5 创建第一个UI

2.5 创建第一个UI Unity 3D NGUI 实战教程 2.5.1 创建一个2D UI 制作UI时,首先我们要创建UI的"根".在Unity顶部NGUI菜单中选择Create,然后选择2D UI,如图2.25所示. 创建完成后,我们能看到图2.26所示的景象,在Scene窗口中,NGUI自动生成了一个名为UI Root的物体,其中带有一个Camera作为子物体. 这个新生成的Camera,是NGUI生成的专门用来渲染UI的相机,当我们生成NGUI的UI Root时,就自动将生成的

《Unity 3D NGUI 实战教程》一2.3 制作第一个UI图集

2.3 制作第一个UI图集 Unity 3D NGUI 实战教程 2.3.1 学会解剖UI的资源结构 为什么要剖析UI的资源结构?因为通常情况下,策划设计好UI的功能和大概布局之后,美术人员会做出一张UI的成品效果图,我们称之为UI设计图.然后,客户端程序需要根据自己的制作方式,告诉美术人员如何分割出相应的UI元素提交给程序,以完成制作. 下面以图2.17所示的UI设计图作为例子来讲解分析.首先说明一点,客户端程序一定要同时拿到UI设计图和UI功能描述文档才能彻底知道这个UI会进行什么样的操作逻

《Unity 3D NGUI 实战教程》一2.6 2DUI和3DUI的工作原理

2.6 2DUI和3DUI的工作原理 Unity 3D NGUI 实战教程 2.6.1 2DUI的工作原理 先创建一个2DUI(创建方法上文已讲过),然后在2DUI的"根"UIRoot下创建两个精灵(创建方法后面会详解).然后得到的效果如图2.32所示. 从图2.32中可以看到,创建的两个Sprite为两个按钮图片,它们的位置在UIRoot的红框(视窗)上,也就是Sprite的z轴.相机的z轴.UIRoot的z轴都为0,因为2DUI都是纯粹的2D图片按层次显示,不会出现三维立体效果,所

《Unity 3D NGUI 实战教程》一2.1 导入NGUI插件

2.1 导入NGUI插件 Unity 3D NGUI 实战教程 2.1.1 NGUI版本介绍 NGUI插件目前较新的版本是3.6以后的版本. 在NGUI 3.0以前的时期,底层的事件通信体系完全依赖于SendMessage,这是一个效率比较低下的发消息方式,那个时期大多数Unity的开发者都在使用当时很流行的NGUI 2.6版本,甚至目前还有少数开发者在使用. 在NGUI 3.0及以后的版本中,NGUI进行了大革新,其中革命性的就是将整个的底层消息机制全部换为效率高的EventDelegate.

《Unity 3D NGUI 实战教程》一2.2 认识基本的UI资源

2.2 认识基本的UI资源 Unity 3D NGUI 实战教程 2.2.1 什么是UI精灵(Sprite) 我们在制作UI时,经常将一些零碎的小的UI资源(比如,一个小箭头.一个按钮等)打包成一张大图,然后在使用时,只使用这个大图中的一部分(例如,只使用其中小箭头的那一小块),那么这一块"被切出来"的图片,就可以称之为精灵. 如图2.11所示的就是一个又一个的UISprite. 2.2.2 什么是UI图集(Atlas) 我们在制作UI时,会将一些零碎的小的UI资源打包到一张大图中,然

《Unity 3D NGUI 实战教程》一2.7 深度(Depth)概念

2.7 深度(Depth)概念 Unity 3D NGUI 实战教程 2.7.1 强化对深度的理解 深度的概念将会一直伴随着UI的制作过程,是UI中一个非常重要的概念.我们在2.5.3小节中讲解UIPanel时已经讲解了深度的概念,这里我们再强化一下对深度的理解.在老版本的NGUI中,UI的显示层次关系是依靠z轴进行的.在新版本的NGUI中,所有UI的z轴都被统一,然后用深度来决定和管理显示的层次关系.关于深度,我们要记住一下关键点. (1)每一个UIPanel和每一个UI控件都一定会有一个De

《Unity 3D NGUI 实战教程》一导读

前 言 Unity 3D NGUI 实战教程在手机游戏开发兴起的当下,Unity 3D引擎依靠其良好的跨平台特性,一跃成为全球第一大引擎,被广泛地使用.越来越多的游戏开发者开始关注和使用Unity 3D引擎.Unity 3D引擎最大的短板在于其原生的GUI系统有很大的缺陷,例如,性能和方便程度等都不适合进行商业开发,所以,大部分开发者都开始使用NGUI.NGUI的GUI以良好的性能优化.方便的开发模式.成熟稳定等特点,已经成为全球Unity游戏开发者的UI制作首选插件.因为NGUI是一个插件的缘

《Unity 3D NGUI 实战教程》一1.2 什么是NGUI

1.2 什么是NGUI Unity 3D NGUI 实战教程 1.2.1 NGUI插件介绍 NGUI是专门针对Unity引擎.用C#语言编写的一套插件,经历了数十个版本的更迭之后,它已经成为了目前世界上应用最广.最成熟的Unity制作UI的插件,完美地弥补了Unity引擎原生GUI系统和NewGUI系统的各种不足之处.程序员可以利用它提供的一整套UI框架和事件通知系统来进行项目的UI设计和制作,NGUI凭借其强大的功能.良好的优化和易用易学性,让大多数程序员都赞赏有加! 1.2.2 NGUI的强

《Unity 3D NGUI 实战教程》一第 2 章 NGUI基础

第 2 章 NGUI基础 Unity 3D NGUI 实战教程本文仅用于学习和交流目的,不代表异步社区观点.非商业转载请注明作译者.出处,并保留本文的原始链接.