Unity教程之-定制Project内的特定资源的Inspector面板显示

 

我喜欢在工作之中开发些小工具来增加开发效率,那么本篇文章我们来看下定制Project内的特定资源 的Inspector面板显示 ,目的是为了为了更好的标记 和查找对象。这个定制 不是说对脚本组件的字段等的定制。  而是对Project 内的特定资源的定制。废话不说贴上代码


using UnityEngine;
using System.Collections;
using System.IO;
using UnityEditor;

// 注: 音频、贴图、材质、预制体、模型、脚本、特殊不识别的资源等都不是 DefaultAsset
[CustomEditor(typeof(UnityEditor.DefaultAsset))]
public class CustomInspector : Editor
{
private static string prePath = string.Empty;

// 1、如果是场景就显示  场景的所有引用。
// 2、如果是文件夹,就显示 文件夹下的所有文件和子目录
public override void OnInspectorGUI ()
{
string path = AssetDatabase.GetAssetPath(target);

// 1
GUI.enabled = true;
if(path.EndsWith(".unity"))
{
GUILayout.Label("场景的所有引用:");
var depends = AssetDatabase.GetDependencies(new[] { path });
for (int i = 0; i < depends.Length; i++)
{
GUILayout.Label(i + "、" + depends[i]);
}

prePath = path;
}

// 2
else if(path.EndsWith("")){;

GUILayout.Label("文件夹下的所有内容:");
var filePaths = Directory.GetFiles(path, "*", SearchOption.AllDirectories);
for (int j = 0; j < filePaths.Length; j++)
{
if (!filePaths[j].EndsWith(".meta"))
{
GUILayout.Label(j + "、" + filePaths[j]);
}
}
}
}
}

效果如下:

定制Project内的特定资源的Inspector面板定制Project内的特定资源的Inspector面板