zoukankan      html  css  js  c++  java
  • Unity4.6 UGUI 图片打包设置(小图打包成图集 SpritePacker)

    在学习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 ……这让人很不解。

     

     
     
     
  • 相关阅读:
    python爬虫-selenium八大定位笔记
    git pull : error: cannot lock ref 'refs/remotes/origin/*' (unable to update local ref) 解决方案
    Lua table.sort()原理和使用的坑
    Unity---有关游戏物体角度的两种赋值方法这件事
    C# #if、#endif和预处理指令
    Unity 4大坐标系 和 屏幕坐标与UI坐标的转换问题
    第2次参加游戏开发比赛
    Unity Text添加空格导致换行问题的两种解决方法(还有lua的解决方法)
    MySQL是如何处理千万级数据
    PHP使用守护进程处理队列
  • 原文地址:https://www.cnblogs.com/alps/p/7769336.html
Copyright © 2011-2022 走看看