返回
Unity编辑器拓展-快捷查看资源被引用的状况
前端
2023-11-19 14:28:49
在Unity项目开发过程中,经常会有重复被使用或重复的资源图片。在整理项目时,需要查看这些图片被哪些预制件引用,以便安全地进行清除。这时,可以利用AssetDataBase相关的API来查找资源。
首先,需要在编辑器中创建一个新的扩展。在菜单栏中选择“Assets”>“Create”>“Script”,然后将脚本命名为“AssetUsageFinder”。在脚本中,添加以下代码:
using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
public class AssetUsageFinder : EditorWindow
{
private Object asset;
private List<Object> references;
[MenuItem("Tools/Find Asset Usage")]
public static void ShowWindow()
{
EditorWindow.GetWindow<AssetUsageFinder>("Find Asset Usage");
}
void OnGUI()
{
asset = EditorGUILayout.ObjectField("Asset:", asset, typeof(Object), false);
if (GUILayout.Button("Find References"))
{
references = new List<Object>();
FindReferences(asset);
}
if (references != null && references.Count > 0)
{
EditorGUILayout.LabelField("References:");
foreach (Object reference in references)
{
EditorGUILayout.ObjectField("", reference, typeof(Object), false);
}
}
}
void FindReferences(Object asset)
{
string[] dependencies = AssetDatabase.GetDependencies(AssetDatabase.GetAssetPath(asset));
foreach (string dependency in dependencies)
{
Object obj = AssetDatabase.LoadAssetAtPath<Object>(dependency);
if (obj != asset)
{
references.Add(obj);
}
}
}
}
然后,在编辑器中选择需要查看引用的资源,然后点击菜单栏中的“Tools”>“Find Asset Usage”选项。这时,将会弹出一个窗口,其中列出了所有引用了该资源的预制件。
这个扩展可以帮助您在整理项目时更有效地进行资源管理,避免重复使用或重复的资源图片。