SpriteAtlas 使用小结

记录些SpriteAtlas使用的注意事项。

1.先解释下流程

    1) 图片需要切换成Sprite(2D and UI)`
        设置 Edit -> Project Settings -> Editor -> Sprite Packer-> Mode -> AlawaysEnable.

    2) 新建SpriteAtlas文件,将Sprite或者Sprite所在文件夹拖入Objects for Packing,按Pack Preview预览。

    3) SpriteAtlas面板中Include in Build选项,勾选的话作用于编辑器中,貌似打包后也会冗余(反正我是取消了)。取消后需要在代码中监听SpriteAtlasManager.atlasRequested事件来在程序中加载贴图集。

    4) 在SpriteAtlasManager.atlasRequested事件回调中加载贴图集ab文件,回调中的action做显示。

2.SpriteAtlas与Prefab的关联
    SpriteAtlas这套系统和NGUI那套不一样,理解上有些不同。NGUI是将UI的prefab和贴图的prefab进行关联,两个文件在.meta文件或者.mainfest中是看的到依赖关系的。而SpriteAtlas则但从这些文件里看不出什么关联。

图一

图二

    图一是SpriteAtlas打包出的ab解析,图二是使用Atlas中一张Sprite的Prefab打包ab解析。可以看出两个ab中带包含了rocherBg的Sprite信息。由此我猜测,这个Sprite信息就是Atlas和Prefab之间的联系。Prefab通过Sprite信息来提供给SpriteAtlasManager告诉它我们所需要的Atlas,之后才能完成回调。(以上为猜想,具体原理没有查到,请路过大大指点迷津)


3.SpriteAtlasManager.atlasRequested的调起时机
     官方文档中推荐在OnEnable方法中对SpriteAtlasManager.atlasRequested进行监听,在OnDisable中取消。
      在Unity2017中,在编辑器环境下,无论Atlas是否被使用都会被SpriteAtlasManager.atlasRequested请求,而在真机环境下只会请求被使用到的Atlas。而在Unity2018中,在编辑器环境下,也只会请求被使用到的Atlas。


暂时就写到这里。。日后有新经验会继续更新。。。如上述内容有出错的地方请路过的大大指出赐教,帮在下提高~


阅读更多
换一批

没有更多推荐了,返回首页