Unity的SpriteAtlas实践

本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/14634510.html



我的环境#

Unity引擎版本:Unity2019.3.7f1

AssetBundles-Browser 于2021-1-14拉取,github上最后提交日期是2019-12-14,在本文简称:ABBrowser

注意事项:每次修改spriteAtlas的属性后,都要把ab文件删除后再重新打包。

事件通知:只有不勾选Include In Build 才会触发 SpriteAtlasManager.atlasRequested

SpriteAtlas不勾选Include In Build#

UI和图集不同名#

KSFramework中的例子分析,打开ABBrowser来看,如果图集的abName和ui的abName不一致,会提示你元素被打包到多个ab中,实际也是打包到不同的ab中了

image

UI和图集同名且引用公共图集#

如果一个图片被多个ui界面的prefab中引用,不管这个图片是否有打到共用图集中,都会提示xxx is auto-included in multiple bundles,但是通过解包ab可以看到login.ab并未包含btn_panel_02这张图,因为btn_panel_02打包在公共图集中

image-20210407163757314

项目实践#

最好的做法,就是一个atlas只被一个ui.prefab引用,且atlas和ui打到同一个ab中

这种做法需要自己加载图集,在UI编辑器中处理一套,而加载资源需要处理另一套

根据这个特性,我在 KSFramework 中已经对unity的spriteAtlas进行了管理

勾选Include In Build#

如果图集和UI不在同一个ab中,则打包出来的版本会丢图,在Editor中中正常的。

而如果图集和UI放在同一个ab中,则不会丢图

作者:赵青青   一名在【网易游戏】做游戏开发的程序员,擅长Unity3D,游戏开发,.NET等领域。
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
posted @   赵青青  阅读(904)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
阅读排行:
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 易语言 —— 开山篇
· Trae初体验
历史上的今天:
2014-04-08 Unity使用 UnityVS+VS2013 调试脚本
CONTENTS
点击右上角即可分享
微信分享提示