首页 > 其他分享 >unity编辑器拓展,查找项目中预制体引用的组件或者脚本

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

时间:2024-07-07 18:41:42浏览次数:14  
标签:Assembly string componentName 编辑器 System unity 预制 using folderPath

`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("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);

    }
}
}`

标签:Assembly,string,componentName,编辑器,System,unity,预制,using,folderPath
From: https://www.cnblogs.com/luojua/p/18288788

相关文章

  • Unity编辑器扩展之Inspector面板扩展
    内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity编辑器扩展之Inspector面板扩展   TechX坚持将创新的科技带给世界!拥有更好的学习体验——不断努力,不断进步,不断探索TechX——心探索、心进取!助力快速掌握Inspector编辑器扩展为......
  • 预制菜工厂MES系统:具体功能与应用场景
    在现代化食品工业中,预制菜(Ready-to-Eat,RTE)因其方便快捷、卫生安全及营养均衡的特点,迅速在餐饮行业中占据重要地位。为了进一步提升预制菜工厂的生产效率、保障产品质量并降低生产成本,制造执行系统(ManufacturingExecutionSystem,MES)的引入成为了关键的技术创新。本文将详细......
  • Unity Shader技巧:实现带投影机效果,有效避免边缘拉伸问题
    这个是原始的projector投影组件,边缘会有拉伸经过修改shader后边缘就没有拉伸了(实现代码在文章最后)这个着色器通过检查每个像素的UV坐标是否在定义的边界内,来确定是否应用黑色边框。如果UV坐标处于边缘区域,那么像素颜色会被强制设为黑色,从而在投影图像周围形成一个黑色......
  • 八叉树-Unity
    八叉树八叉树简介八叉树(Octree)是一种在三维空间中进行数据组织和存储的树型数据结构。它的工作原理是将一个大的三维空间递归地分割成八个相等的小空间,每个小空间又可以继续分割成八个更小的空间,以此类推,直到达到某个预定的深度或者满足特定的终止条件(例如,空间内元素数量少于一......
  • 【Unity几种数据存储之间的区别】PlayerPrefs、Json、XML、二进制、SQLite数据存储之
    ......
  • Unity海面效果——4、法线贴图和高光
    Unity引擎制作海面效果  大家好,我是阿赵。  继续做海面效果,上次做完了漫反射颜色和水波动画,这次来做法线和高光效果。一、高光的计算  之前介绍过高光的光照模型做法,比较常用的是Blinn-Phong  所以我这里也稍微连线实现了一下  为了能看得更清楚......
  • 分享一款可编辑本地电脑文件的在线编辑器
    背景之前见过在线版的VSCode,被惊讶到了。网页上竟然可以编辑电脑本地的文件,打破了网页无法编辑本地电脑文件的限制。一直好奇怎么做的。抽空研究了一下,然后发现其实也不难。 分析先给大家介绍一下这款在线编辑器的效果。 左侧栏为文件浏览器,显示了文件列表。右侧为编辑器......
  • 不同编辑器的保存和退出方法。
    操作步骤:Vim:编辑提交信息。按ESC退出编辑模式。输入:wq保存并退出。按Enter。Emacs:编辑提交信息。按Ctrl+X,然后按Ctrl+S保存。按Ctrl+X,然后按Ctrl+C退出。Nano:编辑提交信息。按Ctrl+O保存。按Enter确认文件名。按Ctrl+X......
  • 微信SDK与Unity的Addressables发生引用冲突的解决办法
    当我使用Unity的Addressables和微信的minigame-SDK时,会发生一个CS0433的报错,如下图所示: 关于CS0433错误,微软的官方文档中是这么描述的: 因此,根据报错信息,我揣测是Unity的Compat与mscorlib发生了重复,所以将mscorlib.dll文件全部删除了,但是问题没有得到解决,后面在一个大佬的帮......
  • UltraEdit下载与安装教程(一套功能强大的超文本编辑器 )
    前言UltraEdit是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII码,完全可以取代记事本(如果电脑配置足够强大),内建英文单字检查、C++及VB指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。UltraEdit是Windows旗下一款流行的老牌文本/HEX编......