博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity运行时检测Altas使用情况
阅读量:7241 次
发布时间:2019-06-29

本文共 1166 字,大约阅读时间需要 3 分钟。

UI贴图在游戏中内存大小中占的分量非常非常大,尤其对于前期对UI没有规划的项目,无论是包量还是内存大小都是需要花费很多时间去优化。如果涉及到战斗场景和逻辑场景的情况下,常用的做法就是把两个场景使用的atlas严格的分离开,这样可以减少运行时内存,特别是在战斗中,内存增加的比较厉害。OK,如果项目前期这方面的事情考虑比较周全、规则比较详细、执行也比较到位,后期可能就做这个事情就比较简答。那如果出现战斗中引用不该有的atlas怎么办?UI太多的情况下,逐个排除太麻烦,尤其是不在UI中,只是静态引进的就更头疼。下面的代码就是检测atlas使用情况。UGUI默认打包后会把名字前缀”SpriteAtlasTexture”

void CheckUsedAtlas(string atlasName)    {        Image[] gos = Resources.FindObjectsOfTypeAll(typeof(Image)) as Image[];        for (int i = 0; i < gos.Length; i++)        {            if (EditorUtility.IsPersistent(gos[i].transform.root.gameObject))                continue;            if (gos[i] == null)                continue;            if (gos[i].mainTexture.name.Contains("SpriteAtlasTexture-"+atlasName))            {                string name = gos[i].name;                Transform parent = gos[i].transform.parent;                while (parent != null)                {                    name = parent.name + "/" + name;                    parent = parent.parent;                }                BWDebug.LogError(string.Format("Use {0}:{1}", atlasName,name));            }        }    }

 

网上找到另外一种检测方式,检测的范围会更广泛一些,使用Texture中返回的指针接口来进行判断,可以坐下参考

转载地址:http://lufbm.baihongyu.com/

你可能感兴趣的文章
01-Nginx配置参数优化
查看>>
html5-新增表单的小结details summary
查看>>
AFN实现文件上传
查看>>
嵌入式开发之zynq---Zynq PS侧sd驱动
查看>>
web html 防盗链
查看>>
WCF,WebAPI,WCFREST和WebService的区别
查看>>
(树形dp)鸡毛信问题 (fzu 1227)
查看>>
论文阅读笔记五十八:FoveaBox: Beyond Anchor-based Object Detector(CVPR2019)
查看>>
关于Cookie跨域的问题研究
查看>>
今天看见了一个有意思的题目-----请实现鼠标点击页面中的任意标签,alert该标签的名字...
查看>>
Windows 7 Professional安装多语言包
查看>>
SOC-training image镜像内核文件(DE1-soc软件实验”hello_word")
查看>>
使用 Apache Commons CLI 开发命令行工具示例
查看>>
第十三章 接口
查看>>
进度条9
查看>>
robotframework自动化测试之测试数据
查看>>
[NOI2008]志愿者招募
查看>>
同一个闭区间上有界变差函数的和与积都是有界变差函数
查看>>
Elementary Methods in Number Theory Exercise 1.5.10
查看>>
「陶哲軒實分析」 習題 3.5.1
查看>>