今天我们来看一下怎么自定义NGUIAtlas,制作属于自己风格的UI。
第一部分:自定义 Atlas
1 . 首先我们要准备一些图标素材,也就是我们的UI素材,将其导入到unity工程中。
2. 全选我们需要用到的UI素材。选择菜单NGUI->Open the Atlas Maker(快捷键 Alt +shift+M)。打开Atlas Maker窗口,如图

我们可以看到,刚才选择的图片素材已经在下面的Sprite窗口中列出来了。

3. 在Create右侧为Atlas起个名称,其余默认即可(这里第二个参数Select可以让我们在现有的Atlas基础上添加新的图片进去)。点击 Create,NGUI会自动为我们完成创建。等待一会完成之后,回到Project视图,可以看到刚才选择的图片的目录下多了三个物体,如图

分别是Atlas的材质球,Atlas,Atlas组合后的图片。
4. 现在我们可以使用自己定义的Atlas了,新建一个UI,然后选择菜单NGUI—>Open the widget wizard,打开widget窗口,把我们刚才新建的Atlas拖到Atlas窗口,然后我们在创建Button等的时候,就可以选择我们自己的UI图片。

第二部分: 自定义Font.

自定义字体常用的有两种方法,第一种方法是导出一些我们需要的文字,单独制作字体。第二种是全部导入整个字体文件,然后动态使用需要的字体。
第一,单独选择使用到的字体。这种方法需要用到一个小软件:bmfont,位图字体生成工具。下载链接http://game.ceeger.com/forum/read.php?tid=619,完全按照默认安装即可。安装完成后打开,界面如图,

这里中间的列表是我们现有字体的文字图集列表。右侧是不同的分类。选择菜单 options,font settings,打开字体设置窗口

在这里设置我们需要的字体,比如我们这里选择的是微软雅黑,编码格式使用默认的Unicode,字体大小设置为32,其他默认即可,点击OK。

然后是选择我们需要的文字,因为在这里列出了所有的雅黑字体的文字,我们有时候不需要这么多,我们就要选择我们需要的文字导出。首先我们打开记事本,输入我们需要的文字。然后保存,在保存的时候注意使用Utf8编码保存

回到bmfont窗口,选择菜单,edit-->Select chars from file(从文件选择字符)。找到我们刚才保存的Txt文件,然后点击打开。bmfont会自动为我们选择我们需要的字符。设置字体输出格式:点击 Options-->Export options打开输出设置窗口,如图

设置输出尺寸为2048,这里的大小根据我们选择的字符多少确定,如果字符数少,可以选择1024或者更少,一般常用中文字体加一块大概四千左 右,2048大小的图片即可完全容纳。设置图像深度为32比特,因为我们需要用到Alpha通道。在Presets选项下选择带有Alpha通道的输出设 置,字体颜色可以选择白色或者黑色,设置Textures为PNG格式,点击OK,回到主界面。

导出字体:选择菜单Options-->Save bitmap font as。打开保存窗口,命名保存,然后打开保存的目录,我们可以看到,我们导出了两个文件,一个带有我们选择文字的Png格式的图片,另一个记录字符信息的fnt格式文件,把它改为txt格式。拷贝导出的两个文件到Unity工程目录下。

我想,我们得先自己建一个Atlas,选择NGUI ->Open the Atlas Maker,先Create一个空洞Atlas,

然后制作字体:选择菜单NGUI-->Open the Font Maker,打开字体制作窗口,如图:

在Type中选择bitmap,将我们刚才导出字体的Txt文本文件拖到Font Data槽中,Texture设置为刚才导出的字符图片,输入字体名称,其余默认,点击Create the font。完成字体的创建。以后我们就可以在任何地方使用我们创建的字体了。这个方法有个缺点就是我们必须事先知道我们所要用到的字符,然后导入制作字 体。假如输入我们没有用到的字符,将无法显示。如何解决这样的问题呢?那就是动态字体啦。

第二种制作字体方法,动态字体。
1. 首先我们导入需要的字体,从Windows/fonts目录下拷贝出我们需要的字体,粘贴到Unity工程目录下。此过程需要一段时间的导入。导入完成后,我们可以看到字体包括两个子文件,一个材质球和一个贴图文件。
2. 制作动态字体,选择菜单NGUI--->Open the Font Maker,打开字体制作窗口,将Type设置为dynamic方式,拖放我们导入的字体文件到 Font TFF下, 设置我们需要的 Font Size。还可以设置字体方式为加粗,斜体等效果。


3. 点击Create the font 完成动态字体创建。此方法创建的字体优点就是可以使用该字体包含的任何文字,不用担心找不到字符的问题。

声明: 本文由(zqcyou)原创编译,转载请保留链接: NGUI系列教程四(自定义Atlas,Font)

NGUI系列教程四(自定义Atlas,Font)的更多相关文章

  1. (转)NGUI系列教程七(序列帧动画UITexture 和 UIsprit)

    NGUI系列教程七(序列帧动画)   今天我给大家讲一下如何使用NGUI做序列帧动画.本节主要包括两方面内容,分别是使用UIspirit和使用UITexture 做序列帧动画.废话不说了,下面开始.还 ...

  2. NGUI系列教程七(序列帧动画)

    今天我给大家讲一下如何使用NGUI做序列帧动画.本节主要包括两方面内容,分别是使用UIspirit和使用UITexture 做序列帧动画.废话不说了,下面开始.还要在啰嗦一句,首先大家要准备一些序列帧 ...

  3. Android Studio系列教程四--Gradle基础

    Android Studio系列教程四--Gradle基础 2014 年 12 月 18 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang ...

  4. Fastify 系列教程四 (求对象、响应对象和插件)

    Fastify 系列教程: Fastify 系列教程一 (路由和日志) Fastify 系列教程二 (中间件.钩子函数和装饰器) Fastify 系列教程三 (验证.序列化和生命周期) Fastify ...

  5. React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发

    React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发   2016/09/23 |  React Native技术文章 |  Sky丶清|  4 条评论 |  1 ...

  6. CRL快速开发框架系列教程四(删除数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. C#微信公众号开发系列教程四(接收普通消息)

    微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...

  8. NGUI系列教程五(角色信息跟随)

    在一些网络游戏中,我们常常可以看到角色的上方显示着角色的名称,等级,血量等信息.它们可以跟随角色移动,并且可以显示和隐藏.今天我们就来学习一下这些功能的实现方法.1. 新建unity工 程,导入NGU ...

  9. NGUI系列教程三

    接下来我们再来看Progress Bar和Slider,对比参数我们可以发现,Progress Bar和slider的明显区别在于slider多一个Thumb选项,这里的Thumb就是我们拖动的时候点 ...

随机推荐

  1. Java基础知识强化100:JVM 内存模型

    一. JVM内存模型总体架构图:  方法区和堆由所有线程共享,其他区域都是线程私有的 二. JVM内存模型的结构分析: 1. 类装载器(classLoader) 类装载器,它是在java虚拟机中用途是 ...

  2. c++中静态成员变量 静态成员函数 全局变量与静态函数的关系 字符串中括号的匹配编程 (笔试经历)

    笔试经历 1 类中的静态变量不能通过构造函数参数列表来初始化,因为静态变量不属于哪个对象.同时静态变量在不初始化的情况下系统会自动为变量赋值,数值型赋值为零,字符型赋值为空. 非静态变量只有在定义时才 ...

  3. Oracle批量加注释,并生成html

    excel连接列名生成oracle注释 notes: A2为列名,B2为注释 ="comment on column ColAgreementHeader."&A2& ...

  4. VS版本下载

    tfs2012:BVGTF-T7MVR-TP46H-9Q97G-XBXRB http://www.microsoft.com/zh-cn/download/details.aspx?id=30658 ...

  5. java基础学习总结四(控制语句<顺序、选择、循环>、方法)

    一:结构控制语句 结构控制语句分为3种,顺序语句.选择语句.循环语句. 1:顺序语句 就是自上而下的执行程序,默认执行顺序. 2:选择语句 if结构语句:如果满足条件,则执行该语句. if...els ...

  6. 【原】Spring与MongoDB集成:配置

    MongoDB的API提供了DBObject接口来实现BSONObject的操作方法,BasicDBObject是具体实现.但是并没有提供DBObject与BeanObject的转换.在还没有了解到与 ...

  7. monkey与monkeyrunner的使用

    什么是Monkey Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压 ...

  8. jquery_ajax

    一.调用 <script type="text/javascript" src="jquery-1.11.2.min.js"></script ...

  9. nvl()函数

    Oracle里面的nvl()函数 Nvl(字段名,0):如果你某个字段为空,但是你想让这个字段显示0,nvl(字段名,0) ,就是当你选择出来的时候,这个字段虽然为空,但是显示的是0,当然这个0也可以 ...

  10. asp.net 下OnClientClick的妙用

    一. OnClick是button的服务器端事件 OnClientClick是button的客户端事件 onlick时发生postback,执行后台代码.onclientclick,就是执行javas ...