`using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEngine.UI;
using System.Reflection;
using System;
public class SearchComponent : EditorWindow
{
private string componentName = "UnityEngine.UI.Text";
private string folderPath = "Assets";
[MenuItem("Tool/SearchComponent")]
public static void ShowWindow()
{
GetWindow
}
private void OnGUI()
{
folderPath = EditorGUILayout.TextField("文件夹路径:",folderPath);
componentName = EditorGUILayout.TextField("名字:", componentName);
if (GUILayout.Button("ListPrefabs")) {
ListPrefabsInFolder(folderPath);
}
}
private void ListPrefabsInFolder(string folderPath)
{
string[] guids = AssetDatabase.FindAssets("t:Prefab", new string[] { folderPath });
//获取组件
Assembly asmb = System.Reflection.Assembly.GetAssembly(typeof(Graphic));
Type t = asmb.GetType(componentName);
//获取自定义脚本
//Assembly asmb1 = System.Reflection.Assembly.Load("Assembly-CSharp");
//Type t1= asmb1.GetType(componentName);
foreach (string guid in guids)
{
string assetPath = AssetDatabase.GUIDToAssetPath(guid);
GameObject prefab = AssetDatabase.LoadAssetAtPath<GameObject>(assetPath);
if (prefab.GetComponentInChildren(t)) Debug.Log(prefab.name);
}
}
}`
标签:Assembly,string,componentName,编辑器,System,unity,预制,using,folderPath
From: https://www.cnblogs.com/luojua/p/18288788