版权声明:本文转自http://blog.csdn.net/huutu 转载请带上 http://www.liveslives.com/

在学习UGUI的过程中,一直使用小图也就是散图,一个按钮一个图片,一个图标一个图片,这样每一个图片都有一个Drawcall。

之前公司的游戏都是使用Unity4.3+NGUI,在NGUI中可以使用Texturepacker,先把小图片打包成一张大图,然后在NGUI中设置引用大图中的哪一块作为图片,这样能减少很多Drawcall。

但是在UGUI中没有办法使用Texturepacker了,也迷糊了几天。

之后一直在百度谷歌寻找,才发现原来Unity4.6中自带了图集打包工具SpritePacker。

在Unity4.6中,我们把一张图片拖入到Project中,可以设置它的用途,是Texture还是作为2DUI使用。而且注意到多了一个 Packing Tag的设置项。这个设置项就是设置小图打包成大图后的atlas的名称!

注意:

放在Resources中的图片,Unity不会打包到图集中!

来看下面的实例:

我在界面中放了7个image,每个image是一张不同的图片

喜闻乐见的7个Drawcall,7个图片就7个Drawcall,嗯,老板让我明天滚蛋了。

然后我们来看下如何打开Unity自带的自动的图集打包。

首先,Unity默认是在编辑器环境下不打开图集打包工具的,只有在Build的时候才会执行自动打包图集。

Edit - Project Setting - Editor

默认为下图设置:

我们修改为:

一直启用Sprite Packer,这样我们在编辑器环境下也可以使用自动打包图集。

再来运行看下:

嗯?还是7个Drawcall,Unity 坑我们?

其实不是,仔细再想下,上面提到了 Packing Tag 这个参数,是么有设置的。

既然没有设置 Packing Tag,那Unity应该不知道怎么去打包图集……,因为没有名字嘛。

我们给这7个图片设置一个名字,例如 test,然后保存Apply,再次运行测试

为什么有两个?Unity坑我们呢!!

其实不是,是因为这7张图片,有一张图片我放到了 Resources文件夹里面,上面就说道,Resources中的图片Unity是不会打包的哦!

那么Unity把我们的小图片打包到哪里去了,找不到呀,被吃了吗?我想再看一眼效果怎么办!

在Unity菜单的Window中有一个 Sprite Packer,我们打开它

在这里就可以看到打包的图集。

左边红框是图集名字,也就是我们设置的 Packing Tag 。

第二个是打包的方式,默认打包,还有一种是紧凑型打包 ,两种方式没啥大区别。上面这7张图片用Texturepacker打包后只有512x512大小,但是用Unity的Sprite Packer打包后是1024x512 ……这让人很不解。

 

 
 

Unity4.6 UGUI 图片打包设置(小图打包成图集 SpritePacker)的更多相关文章

  1. webpack踩坑之路——图片的路径与打包

    转自:http://www.cnblogs.com/ghost-xyx/p/5812902.html 刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不 ...

  2. webpack图片的路径与打包

    转的http://www.cnblogs.com/ghost-xyx/p/5812902.html 今天写 react遇到打包图片,之前都是通过url在css里,没遇到问题,今天在 react里直接用 ...

  3. webpack踩坑之路 (2)——图片的路径与打包

    刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不能打包进我们的目标文件夹里(bundle).下面我们就来分析下在webpack项目中图片的应用场景. ...

  4. InstallShield打包设置相对路径

    InstallShield打包设置相对路径 在使用Installshield 打包安装文件时,添加打包文件时默认使用绝对路径,但是工程文件转移时(复制到其它位置时)编译时就会找不到安装文件,这样很不方 ...

  5. android-xBuild apk差分与合成,zip差分与合成,lua打包,apk打包,png/jpg图片压缩

    android-xBuild 是一项集成了apk差分与合成,zip差分与合成,lua打包.apk打包,png/jpg图片压缩五大功能的开源项目 (github地址:https://github.com ...

  6. Java启动命令与Maven打包设置

    一.Java启动命令 java程序的启动方式有三种: 1.java -jar 生成的jar包中,manifest文件定义了Main Class,可使用该命令 java -jar test.jar 2. ...

  7. (转) Unity3D 使用Texturepacker打包工具制作NGUI(Atlas)图集

    转自:http://www.unitymanual.com/thread-37485-1-1.html 由于NGUI AtlasMaker对打包的优化不好,容易打出很大的图集,很多部分都是浪费的,所有 ...

  8. webpack打包和gulp打包工具详细教程

    30分钟手把手教你学webpack实战 阅读目录 一:什么是webpack? 他有什么优点? 二:如何安装和配置 三:理解webpack加载器 四:理解less-loader加载器的使用 五:理解ba ...

  9. Bootstrap css背景图片的设置

    一. 网页中添加图片的方式有两种 一种是:通过<img>标签直接插入到html中 另一种是:通过css背景属性添加 居中方法:水平居中的text-align:center 和 margin ...

随机推荐

  1. 010_Hadoop配置测试成功后关机重启浏览器打不开dfs和MP

    针对Hadoop成功配置并测试通过,第二次(关机重启)后Hadoop打不开的问题,一般都是因为防火墙的问题,将防火墙关闭后就可以了. 更细致的现象为start-all.sh启动,五大守护进程启动成功, ...

  2. matlab 读取nc

    在这里做个记录,这几个是matlab用来读取.nc格式数据的函数.只是函数,参数和变量为了便于理解,取括号中的名字.   fid=netcdf.open('fname','nowriter');%打开 ...

  3. fastReport 绑定DataBand数据源后还是打印出一条数据

    升级了fastreport到v2018后,打印出现问题,datasource是多条数据,可打印出来始终只显示第一条 DataBand dataBand = report.FindObject(&quo ...

  4. g高分屏DataGrid里面checkbox不显示的解决办法

  5. 线程同步synchronized和ReentrantLock

    一.线程同步问题的产生及解决方案 问题的产生: Java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查),将会导致数据不准确,相互之间产生冲突. 如下例:假设有一个卖票 ...

  6. memcpy与memmove

    函数原型: void* memcpy(void *dst,void const *src,size_t count) void* memmove(void *dst,void const *src,s ...

  7. INSPIRED启示录 读书笔记 - 第31章 苹果公司给我的启示

    苹果公司值得学习的经验 1.硬件为软件服务:苹果公司明白硬件必须为软件服务,软件直接服务用户,满足用户需求.采用多点触控显示屏.重力加速器.距离传感器这些硬件技术是为了配合软件满足用户需求 2.软件为 ...

  8. CCNA 课程 一

    OSI 参考模型: 7应用层 6表示层 5会话层 4传输层   --  TCP / UDP (端口号) 3网络层   --  IP (原IP地址,目标IP地址) 2数据链路层  -- ARPA / e ...

  9. Java正则表达中Greedy Reluctant Possessive 的区别

    Java正则表达中Greedy Reluctant Possessive 的区别 分类: java2015-01-16 00:28 1280人阅读 评论(9) 收藏 举报 正则表达式Java   目录 ...

  10. ViewPagerAdapter

    ) { ; } } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } ...