【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人

更新日期:2020年8月13日。
Github源码:[点我获取源码]

AssetsMaster

AssetsMaster(资产的主人)允许你在编辑模式或是运行模式非常直观的查看和管理当前打开场景中的你感兴趣的资产,目前可以管理如下四种资产:材质贴图网格脚本。事实上对于一个Unity程序来说,占用内存大头的也就是这几种资产。

使用AssetsMaster

打开AssetsMaster检视窗口

点击菜单栏:HTFramework -> Tools -> Assets Master即可打开AssetsMaster资产检视窗口。

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人

AssetsMaster窗口简介

资产检视窗口如下:

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人

  • 标题栏:
    1.Include Disabled(是否检索已禁用的对象);
    2.Include Lightmap(是否检索场景烘培的光照贴图);
    3.Include UGUI(是否检索UGUI控件对象);
    4.Include MonoScript(是否检索继承至MonoBehaviour的脚本对象);
    5.Clear(点击按钮,清除窗口中的所有资产);
    6.Refresh(点击按钮,重新从当前打开的场景中检索资产);
  • 顶部UI:
    1.Material(材质资产检索模式);
    2.Texture(贴图资产检索模式);
    3.Mesh(网格资产检索模式);
    4.MonoScript(脚本资产检索模式);
  • 内容UI:
    根据指定的检索模式,显示当前检索到的所有资产。

Material材质检索

材质检索示例:

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人
材质检索列表信息简介:

  • Name:显示材质的预览图名称(点击预览图可在Project视图中定位到该材质);
  • Shader:显示材质中使用的着色器
  • Texture:显示材质中使用的贴图数量
  • RenderQueue:显示材质的渲染队列
  • In GameObject:显示材质被GameObject引用的次数,点击该按钮可在场景中选中所有引用该材质的GameObject;

Texture贴图检索

贴图检索示例:

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人

贴图检索列表信息简介:

  • Name:显示贴图的预览图名称(点击预览图可在Project视图中定位到该贴图);
  • Detail:显示贴图的细节信息,比如宽高、压缩格式等;
  • Crunched:显示贴图是否已使用Crunched压缩
  • MipMaps:显示为贴图生成的MipMap(小图)数量,如果为1则表明贴图的导入设置面板未勾选Generate Mip Map
  • In Material:显示贴图被材质引用的次数,点击该按钮可在Project视图中选中所有引用该贴图的材质;
  • In GameObject:显示贴图被GameObject引用的次数(间接引用也算),点击该按钮可在场景中选中所有引用该贴图的GameObject;

Mesh网格检索

网格检索示例:

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人

网格检索列表信息简介:

  • Name:显示网格的预览图名称(点击预览图可在Project视图中定位到该网格);
  • VertexCount:显示网格的顶点数量,并在此标题栏后显示所有网格的总顶点数量;
  • In StaticBatching:显示网格被用于静态批处理的数量,点击该按钮可在场景中选中所有使用静态批处理的对象;
  • In Skinned:显示网格被用于蒙皮渲染器的数量,点击该按钮可在场景中选中所有使用蒙皮渲染器的对象;
  • In GameObject:显示网格被GameObject引用的次数(间接引用也算),点击该按钮可在场景中选中所有引用该网格的GameObject;

MonoScript脚本检索

脚本检索示例(需启用标题栏的Include MonoScript开关):

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人

脚本检索列表信息简介:

  • Name:显示脚本的预览图名称(点击预览图可在Project视图中定位到该脚本);
  • Assembly:显示脚本代码被编译到的程序集
  • In GameObject:显示脚本被GameObject引用的次数,点击该按钮可在场景中选中所有引用该脚本的GameObject;

注意:脚本检索支持ScriptableObject对象。

Missing警告

当场景中存在至少一处Missing(资源丢失)时,**Missing检索栏,Missing检索栏如下:

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人

Missing检索列表信息简介:

  • Name:显示Missing的对象预览图名称(点击预览图可在场景中定位到该对象);
  • Missing:显示所有的Missing信息

信息解读,比如第一条,名为GameObject的对象上,组件SkinnedMeshRenderer丢失了Material类型的参数,同时还丢失了Mesh类型的参数,如下图:

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人
信息解读:Missing检测支持自定义脚本比如第三条,名为Player的对象上,组件Player丢失了Mesh类型的参数,如下图:(注意:未赋值,也会认为是丢失)

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人
信息解读:Missing检测支持丢失的脚本比如第四条,名为GameObject(1)的对象上,丢失了一个脚本,如下图:
【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人
将这些Missing都处理之后,重新刷新窗口,可消除Missing警告。

排序

五大检索窗口中的所有资产均支持按每一列数据进行排序,只要该列的标题名前存在此按钮:

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人
点击排序按钮,可以选择根据升序(Ascending)排序或是降序(Descending)排序:

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人
例如:将TextureDetail降序排序,可筛选出资产中尺寸最大的贴图;将MeshVertexCount降序排序,可筛选出资产中顶点数量最多的网格…

Texture警戒值

目前只有Texture资产支持设置警戒值,在Texture检索模式下,右上角会出现一个按钮Alarm Value,如果为黄色,则表明当前存在触发警戒值的资产,且该按钮后会显示当前触发警戒值的资产的数量(比如此处表明有10个Texture资产触发了警戒值):

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人

点击Alarm Value按钮打开警戒值设置界面:

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人
警戒值设置简介:

  • Mark Width:是否将Width值标记为警戒值;
  • Width:如果是,则Width值大于1024时,该资产将触发警戒值;
  • Mark Height:是否将Height值标记为警戒值;
  • Height:如果是,则Height值大于1024时,该资产将触发警戒值;
  • Mark Crunched:是否将Crunched值标记为警戒值,如果是,则该资产如若未启用Crunched压缩将触发警戒值;
  • Mark MipMap:是否将MipMap值标记为警戒值;
  • MipMap Count:如果是,则MipMap Count值大于1时,该资产将触发警戒值;

每一个触发警戒值的贴图资产,将在其后显示一个黄色的三角形警告图标:

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人
鼠标移动到警告图标上,将显示该资产触发警戒值的原因:
【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人
如若有多项参数触发警戒值,将会显示多条原因,在Name列点击排序时,选择Alarm Value根据警戒值排序,触发警戒值的次数最多的资产也会优先被排到前面:

【Unity】 HTFramework框架(三十六)AssetsMaster资源管理器,做资产的主人
这将助你快速找出哪些图片没有达到项目的最低限制要求,以及哪些图片尺寸过大,占用了过多的内存空间,或者图片生成的小图太多,这些也会占用不小的空间。