随笔 - 12  文章 - 0  评论 - 0  阅读 - 3423

unity编辑器拓展,查找项目中预制体引用的组件或者脚本

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<SearchComponent>("Prefab Browser");
}
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);
}
}
}
posted on   juaa  阅读(140)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示