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

更新日期:2020年8月13日。
Github源碼:[點我獲取源碼]

AssetsMaster

AssetsMaster(資產的主人)允許你在編輯模式或是運行模式非常直觀的查看和管理當前打開場景中的你感興趣的資產,目前可以管理如下四種資產:材質貼圖網格腳本。事實上對於一個Unity程序來說,佔用內存大頭的也就是這幾種資產。

使用AssetsMaster

打開AssetsMaster檢視窗口

點擊菜單欄:HTFramework -> Tools -> Assets Master即可打開AssetsMaster資產檢視窗口。

在這裏插入圖片描述

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材質檢索

材質檢索示例:

在這裏插入圖片描述
材質檢索列表信息簡介:

  • Name:顯示材質的預覽圖名稱(點擊預覽圖可在Project視圖中定位到該材質);
  • Shader:顯示材質中使用的着色器
  • Texture:顯示材質中使用的貼圖數量
  • RenderQueue:顯示材質的渲染隊列
  • In GameObject:顯示材質被GameObject引用的次數,點擊該按鈕可在場景中選中所有引用該材質的GameObject;

Texture貼圖檢索

貼圖檢索示例:

在這裏插入圖片描述

貼圖檢索列表信息簡介:

  • Name:顯示貼圖的預覽圖名稱(點擊預覽圖可在Project視圖中定位到該貼圖);
  • Detail:顯示貼圖的細節信息,比如寬高、壓縮格式等;
  • Crunched:顯示貼圖是否已使用Crunched壓縮
  • MipMaps:顯示爲貼圖生成的MipMap(小圖)數量,如果爲1則表明貼圖的導入設置面板未勾選Generate Mip Map
  • In Material:顯示貼圖被材質引用的次數,點擊該按鈕可在Project視圖中選中所有引用該貼圖的材質;
  • In GameObject:顯示貼圖被GameObject引用的次數(間接引用也算),點擊該按鈕可在場景中選中所有引用該貼圖的GameObject;

Mesh網格檢索

網格檢索示例:

在這裏插入圖片描述

網格檢索列表信息簡介:

  • Name:顯示網格的預覽圖名稱(點擊預覽圖可在Project視圖中定位到該網格);
  • VertexCount:顯示網格的頂點數量,並在此標題欄後顯示所有網格的總頂點數量;
  • In StaticBatching:顯示網格被用於靜態批處理的數量,點擊該按鈕可在場景中選中所有使用靜態批處理的對象;
  • In Skinned:顯示網格被用於蒙皮渲染器的數量,點擊該按鈕可在場景中選中所有使用蒙皮渲染器的對象;
  • In GameObject:顯示網格被GameObject引用的次數(間接引用也算),點擊該按鈕可在場景中選中所有引用該網格的GameObject;

MonoScript腳本檢索

腳本檢索示例(需啓用標題欄的Include MonoScript開關):

在這裏插入圖片描述

腳本檢索列表信息簡介:

  • Name:顯示腳本的預覽圖名稱(點擊預覽圖可在Project視圖中定位到該腳本);
  • Assembly:顯示腳本代碼被編譯到的程序集
  • In GameObject:顯示腳本被GameObject引用的次數,點擊該按鈕可在場景中選中所有引用該腳本的GameObject;

注意:腳本檢索支持ScriptableObject對象。

Missing警告

當場景中存在至少一處Missing(資源丟失)時,**Missing檢索欄,Missing檢索欄如下:

在這裏插入圖片描述

Missing檢索列表信息簡介:

  • Name:顯示Missing的對象預覽圖名稱(點擊預覽圖可在場景中定位到該對象);
  • Missing:顯示所有的Missing信息

信息解讀,比如第一條,名爲GameObject的對象上,組件SkinnedMeshRenderer丟失了Material類型的參數,同時還丟失了Mesh類型的參數,如下圖:

在這裏插入圖片描述
信息解讀:Missing檢測支持自定義腳本比如第三條,名爲Player的對象上,組件Player丟失了Mesh類型的參數,如下圖:(注意:未賦值,也會認爲是丟失)

在這裏插入圖片描述
信息解讀:Missing檢測支持丟失的腳本比如第四條,名爲GameObject(1)的對象上,丟失了一個腳本,如下圖:
在這裏插入圖片描述
將這些Missing都處理之後,重新刷新窗口,可消除Missing警告。

排序

五大檢索窗口中的所有資產均支持按每一列數據進行排序,只要該列的標題名前存在此按鈕:

在這裏插入圖片描述
點擊排序按鈕,可以選擇根據升序(Ascending)排序或是降序(Descending)排序:

在這裏插入圖片描述
例如:將TextureDetail降序排序,可篩選出資產中尺寸最大的貼圖;將MeshVertexCount降序排序,可篩選出資產中頂點數量最多的網格…

Texture警戒值

目前只有Texture資產支持設置警戒值,在Texture檢索模式下,右上角會出現一個按鈕Alarm Value,如果爲黃色,則表明當前存在觸發警戒值的資產,且該按鈕後會顯示當前觸發警戒值的資產的數量(比如此處表明有10個Texture資產觸發了警戒值):

在這裏插入圖片描述

點擊Alarm Value按鈕打開警戒值設置界面:

在這裏插入圖片描述
警戒值設置簡介:

  • Mark Width:是否將Width值標記爲警戒值;
  • Width:如果是,則Width值大於1024時,該資產將觸發警戒值;
  • Mark Height:是否將Height值標記爲警戒值;
  • Height:如果是,則Height值大於1024時,該資產將觸發警戒值;
  • Mark Crunched:是否將Crunched值標記爲警戒值,如果是,則該資產如若未啓用Crunched壓縮將觸發警戒值;
  • Mark MipMap:是否將MipMap值標記爲警戒值;
  • MipMap Count:如果是,則MipMap Count值大於1時,該資產將觸發警戒值;

每一個觸發警戒值的貼圖資產,將在其後顯示一個黃色的三角形警告圖標:

在這裏插入圖片描述
鼠標移動到警告圖標上,將顯示該資產觸發警戒值的原因:
在這裏插入圖片描述
如若有多項參數觸發警戒值,將會顯示多條原因,在Name列點擊排序時,選擇Alarm Value根據警戒值排序,觸發警戒值的次數最多的資產也會優先被排到前面:

在這裏插入圖片描述 這將助你快速找出哪些圖片沒有達到項目的最低限制要求,以及哪些圖片尺寸過大,佔用了過多的內存空間,或者圖片生成的小圖太多,這些也會佔用不小的空間。