Unity运行时检测Altas使用情况
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));
}
}
}
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
网上找到另外一种检测方式,检测的范围会更广泛一些,使用Texture中返回的指针接口来进行判断,可以坐下参考
http://www.iverv.com/2015/04/unity-scriptspritepackeratlassprite.html
Unity运行时检测Altas使用情况的更多相关文章
- Ansible 脚本运行一次后,再次运行时出现报错情况,原因:ansible script 的格式不对,应改成Unix编码
Ansible 脚本运行一次后,再次运行时出现报错情况,原因:ansible script 的格式不对,应改成Unix编码 find . -name "*" | xargs do ...
- [bug]”System.InvalidProgramException:公共语言运行时检测到无效程序“解决方案
Visual Studio 2017版本15.8.x运行某些程序会报这样的错误:“System.InvalidProgramException:公共语言运行时检测到无效程序” 此问题的临时解决方案: ...
- 【转】android IDE——通过DDMS查看app运行时所占内存情况
在Android内存优化方面,我们不可能做到没有大内存的占用情况. 所以有时候要清楚我们的app到底占用了多少内存,哪一步操作占用了多少的内存. 这时候,android的ddms中提供了一个工具,是可 ...
- Unity运行时保存prefab的方法一则
unity编辑器在运行状态时,prefab的apply按钮就消失了,其实此时代码访问的话是有效的. 代码如下,将会给transform的右键增加一个save prefab的选项. using Unit ...
- 安装Visual Studio2015后,使用VS2013开发的项目,在IIS访问都提示“公共语言运行时检测到无效的程序”的解决办法
1.安装VS2015后,.NET Framework4.6会替换掉 C:\Windows\Microsoft.NET\Framework64\v4.0.30319 (如果使用的是windows7 64 ...
- Android6.0运行时权限(基于RxPermission开源库)
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 在6.0以前的系统,都是权限一刀切的处理方式,只要用户安装,Manifest申请的权限都会被赋予,并且安装后权限也撤销不了. And ...
- SWF运行时判断两个DisplayObject是否同个类型,属于flash professional库中的同一个元件
一般我们判断两个实例对象是否同样的类型,可以用typeof得到对象类型,然后用==号比较. typeof适用于原生类型. 而对于自定义类型,虽然typeof得到的都是Object,但还有更强的招数:g ...
- Android运行时注入浅析与使用
背景 最近接触新项目,项目中引入了Android Annotation(AA)依赖注入开源框架,代码中大片的注解代码,对于没用过注解框架(或者说没有如此大面积的使用)的我来说确实看得很费力,于是花时间 ...
- c#中运行时编译时 多态
c#中运行时编译时 多态 public class aa { } public class bb:aa { } public class cc { public static void Main( ...
随机推荐
- 初学者在ubuntu下安装使用git(上)
一 git的安装测试 在Ubuntu系统下的bash中输入git,如果提示没有安装的话,用命令 sudo apt-get install git 安装git,安装完成之后通过 git –versi ...
- 曲面之美:三星 S6 Edge+
这些年安卓手机阵营一直拼得又激烈又惨烈,从拼配置,拼性能,拼性价比,到拼颜值拼情怀,拼得用户也都麻木了. 尤其是我这样的用户,不喜欢墨守成规,你配置高又如何,同样价钱的配置都差不多. 我想看不一样的东 ...
- Visual Studio 的代码片段工具
当安装完Visual Studio之后,会有附带一些原生的代码片段文件(*.snippet),对于vs2013参考目录如下: X:\Program Files (x86)\Microsoft Visu ...
- 超级详细Tcpdump 的用法
1.抓取回环网口的包:tcpdump -i lo 2.防止包截断:tcpdump -s0 3.以数字显示主机及端口:tcpdump -n 第一种是关于类型的关键字,主要包括host,net,port, ...
- linux下ssh的几种验证方式
ssh的认证方式有很多种,大概可以概括为以下几类: 1.pam认证方式 在配置文件/etc/ssh/sshd_config中对应参数:UsePAM 2.密钥认证方式 配置文件/etc/ssh/sshd ...
- [转]关于Android系统的”点九”
李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/321.html 前几天群成员讨论过关 ...
- Shell判断字符串包含关系的几种方法
现在每次分析网站日志的时候都需要判断百度蜘蛛是不是真实的蜘蛛,nslookup之后需要判断结果中是否包含“baidu”字符串 以下给出一些shell中判断字符串包含的方法,来源程序员问答网站 stac ...
- win10预览版9926升级10049操作步骤
文章转自:豆豆系统收藏备用 win10预览版系统安装的用户非常多,现在最新版本已经到了10049,但是之前很多装了9926版本或者10041版本的同学在通过系统自动更新的时候,且发现,微软官方提供的速 ...
- Linux常用命令组合
1.删除除某个文件或文件夹外的所有的内容 ll |grep -v test |xargs rm -rf find . -maxdepth 1 -type d|grep -v test|xargs rm ...
- IIS使用Tip
1. IIS7 HTTPS 绑定主机头 IIS7下面默认HTTPS绑定是无法指定主机头的,但我们可以通过手工修改IIS配置来实现主机头绑定. 打开C:\Windows\system32\inetsrv ...