NGUI 3.5教程(四)Atlas和Sprite(制作图片button)
Atlas是NGUI的图集。我的理解是:Atlas把你的一些零散的图片,合并成一张图。这样做的优点是,能够减少Draw Call。我不了解它的底层运作机制,我猜应该也是再行进DXT之类的纹理压缩,所以,最好把图集的尺寸,也做成128, 256,512,1024之类的大小,以方便其进行格式压缩。
概念:
Atlas : 图集。把美术给你提供的素材,用 NGUI 的 Atlas Maker 工具,合成一张图片(准确的说,还同一时候生成了prefab、mat )。
Sprite:精灵。因为Atlas已经把你的图片都合成一张了,那怎么单独调用呢?就是用Sprite。
1,准备素材
新建一个目录,命名为UITexture。详细操作为:在Project面板中,右键-->【Create】-->【Folder】,然后命名。
把以下两张图片(start.png 和pause.png)复制到 UITexture 目录下。注意,这两张小图都是128*128像素的。
2,创建Atlas
在Project面板中,进入UITexture 目录,选中这两张图片,然后 右键-->【NGUI】-->【Atlas Maker】,之后你会看到 Atlas Maker 的界面:
在 Atlas Maker 界面中,点击【Create】button。
之后给这个Atlas 起名为MyAtlas.prefab,点击【保存】。
3*,预览Atlas和Sprite
保存之后,这个新的Atlas 就创建好了。能够点击一下【View Sprites】,预览一下创建好的精灵。
再来看一下这个新建好的Atlas,能够看到,自己主动变成了一张 256*512 的图(要知道,我们的每张小图是128*128的)。这样一来,它有非常多空白的地方。我对此的理解是:
Atlas的长宽比例都是以2的指数幂为单位,比方128 256 1024 2048等。这样做的目的,应该是为了能够採用某种纹理压缩格式,而做的强制转换。
4,运用Atlas 和Sprite 制作一个图片button
以下,我们接着上一篇文章的 Button 那个样例,继续做。首先,删除掉Simple Button的 Label。
然后在检视面板上,UI Script(Script)组件中,点击【Atlas】选项:
在弹出的Select an Atlas面板中,点击【Show ALL】,会出现项目中全部的Atlas,选择我们刚创建的MyAtlas。例如以下图:
在检视面板上,UI Script(Script)组件中,点击【Sprite】选项:
在弹出的Select a Sprite面板中,选择start 图标(也就是精灵)。
选中后,假设在game视图下看,我们会发现button已经变成图片button了,可是严重变形。所以,我们要依据图片的原始大小,进行设置:找到Dimensions选项,单击后面的【Snap】button。或者手动调整一下数值。
好了,在game视图中,能够看到图片button,和我们预想的一样!
NGUI 3.5教程(四)Atlas和Sprite(制作图片button)的更多相关文章
- NGUI系列教程四(自定义Atlas,Font)
今天我们来看一下怎么自定义NGUIAtlas,制作属于自己风格的UI.第一部分:自定义 Atlas1 . 首先我们要准备一些图标素材,也就是我们的UI素材,将其导入到unity工程中.2. 全选我们需 ...
- NGUI 的使用教程与实例(入门)(1 )
NGUI教程:步骤1-Scene 1.创建一个新的场景(New Scene).2.选择并删除场景里的MainCamera.3.在NGUI菜单下选择Create a New UI,会打开UI创建向导. ...
- NGUI全面实践教程(大学霸内部资料)
NGUI全面实践教程(大学霸内部资料) 试读文档下载地址:链接:http://pan.baidu.com/s/1jGosC9g 密码:8jq5 介绍:NGUI全面实践教程(大学霸内部资料)本书是国 ...
- 【Unity3D游戏开发】NGUI之DrawCall数量 (四)
看了非常多关于NGUI drawCall的文章.见得比較多的一个观点是:一个 Atlas 相应一个Drawcall. 但事实上NGUI内部有自己的一套对DrawCall的处理规则. 相关的规则有: 1 ...
- CRL快速开发框架系列教程四(删除数据)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(四)-使用Travis自动部署Hexo(2)
前言 前面一篇文章介绍了Travis自动部署Hexo的常规使用教程,也是个人比较推荐的方法. 前文最后也提到了在Windows系统中可能会有一些小问题,为了在Windows系统中也可以实现使用Trav ...
- C#微信公众号开发系列教程四(接收普通消息)
微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...
- 无废话ExtJs 入门教程四[表单:FormPanel]
无废话ExtJs 入门教程四[表单:FormPanel] extjs技术交流,欢迎加群(201926085) 继上一节内容,我们在窗体里加了个表单.如下所示代码区的第28行位置,items:form. ...
- TFS(Team Foundation Server)敏捷使用教程(四):工作项跟踪(1)
工作项跟踪(1) 可跟踪性是软件过程的重要能力,TFS主要是以工作项来实现过程的可跟踪性.曾有人问:"你们实际项目里的工作项是怎么样的?能不能让我们看看?"我也一直很好奇别的公司T ...
随机推荐
- Android在子线程中更新UI(一)
MainActivity如下: package cc.testui1; import android.os.Bundle; import android.os.Handler; import andr ...
- 如何不屏蔽Android系统的返回按键
比如: 第一种方法: public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated me ...
- cocos2d_x_05_Box2D物理引擎
一.认识Box2D 帮助文档,共69页 二.创建一个物理世界 先导入主头文件 #include <Box2D/Box2D.h> 三.物理世界一览 像素转成米 的比例因子 就是32 三.运动 ...
- LNK1207: incompatible PDB format in********
LNK1207: incompatible PDB format in******** VC中错误:LINK : fatal error LNK1207: incompatible PDB forma ...
- malformed or corrupted AST file。。。module file out of date'
今天打开了曾经用的一个项目,(曾经的程序是对的)弹出了两个红框 malformed or corrupted AST file...module file out of date'. 这种结构. 解决 ...
- 数字证书及CA的扫盲介绍(转)
★ 先说一个通俗的例子 考虑到证书体系的相关知识比较枯燥.晦涩.俺先拿一个通俗的例子来说事儿. ◇ 普通的介绍信 想必大伙儿都听说过介绍信的例子吧?假设 A 公司的张三先生要到 B 公司去拜访,但是 ...
- Difference between datacontract and messagecontract in wcf
在WCF中有两种契约各自是DataContract和MessageContract,这篇博客来讲一下两者的差别.先看一下两者定义契约实体的方式有和不同. 1.数据契约 <span style=& ...
- java文字转成拼音
package com.jframe.kit; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4 ...
- 解决backgroud:transparent在低版本浏览器中的bug
今天在html页面上定义了一个button和一个div,大小相同,button使用绝对定位,覆盖在div上面一层,同时样式设置背景透明(background:transparent). 这样就可以在看 ...
- POJ 1515 Street Directions
题意: 一幅无向图 将尽量多的无向边定向成有向边 使得图强连通 无向图保证是连通的且没有重边 思路: 桥必须是双向的 因此先求边双连通分量 并将桥保存在ans中 每一个双连通分量内的边一定都 ...