`
wanzhanzhuce
  • 浏览: 27535 次
社区版块
存档分类
最新评论

Unity模糊查找MonoBehaviour

阅读更多

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using UnityEditor;

using UnityEngine;

 

namespace Assets.Editor

{

    class FindMonoBehaviour : ScriptableWizard

    {

        public string text;

 

        [MenuItem("Temp/Find MonoBehaviour")]

        public static void CreateAssetBundle()

        {

            var findMonoBehaviour  = DisplayWizard<FindMonoBehaviour>("Find MonoBehaviour", "Create");

        }

 

        public void OnWizardCreate()

        {

            string currentScenePath = EditorApplication.currentScene;

 

            if (!string.IsNullOrEmpty(currentScenePath))

                EditorApplication.OpenScene(currentScenePath);

            else

                return;

            foreach (GameObject obj in UnityEngine.Object.FindObjectsOfType(typeof(GameObject)))

            {

                if (obj.transform.parent == null)

                {

                    FindScripts(obj, obj.name);

                    TraceGameObject(obj, obj.name);

                }

            }

        }

 

        public  void FindScripts(GameObject obj, String gameObjPath)

        {

            List<MonoBehaviour> scripts = new List<MonoBehaviour>();

            obj.GetComponents<MonoBehaviour>(scripts);

 

            foreach (MonoBehaviour script in scripts)

            {

                if (script == null)

                    continue;

                if (script.GetType().ToString().Contains(text))

                    Debug.Log("Script=" + script.GetType() + "                  GameObject=" + gameObjPath);

            }

        }

        public void TraceGameObject(GameObject obj, String prefix)

        {

            List<Transform> trs = new List<Transform>();

            obj.GetComponentsInChildren<Transform>(true, trs);

            foreach (Transform tr in trs)

            {

                if (tr.parent == obj.transform)

                {

                    String temp = prefix + "/" + tr.gameObject.name;

                    //Debug.Log(temp);

                    FindScripts(tr.gameObject, temp);

 

                    TraceGameObject(tr.gameObject, temp);

                }

            }

        }

    }

}

 

分享到:
评论

相关推荐

    Unity3D中MonoBehaviour类整理

    在Unity3D游戏开发中,`MonoBehaviour`类扮演着至关重要的角色,它是所有脚本组件的基础。这个类位于继承层次的顶端,具体为`Object-&gt;Component-&gt;Behaviour-&gt;MonoBehaviour`。无论是JavaScript、C#还是Boo语言编写的...

    非常优秀的Unity运动模糊插件包含Unity4.X和Unity5.X两个版本,可以支持到Unity4.X到2019

    非常优秀的Unity运动模糊插件,包含Unity4.X和Unity5.X两个版本,其中Unity5.X版本可以支持到Unity5.X到2019.该插件通过分层运算,挂载到摄像机产生告诉运动特效,并且不会占用过多GPU资源,本插件支持打包到windows...

    Unity搜索框,模糊查询

    有刚入门的群友咨询搜索筛选控件怎么处理,这里记录一下之前做过的两种方式一种是用InputField控件和DropDown控件组合做的,另外一种是用InputField结合自己写的界面做。两种方式都可以具体哪种更适合需要结合自己的...

    Unity 镜头模糊的光影特效插件

    Unity 镜头模糊的光影特效插件,适用于多种摄像机特效。

    在unity项目中查找图片应用

    在Unity项目中,管理和查找图片资源的引用是十分重要的任务,尤其当项目变得庞大时,了解每个图片资源在游戏中的使用情况有助于优化性能和管理内存。以下是对标题和描述中涉及的知识点的详细说明: 一、Unity 图片...

    Unity动态高斯模糊效果Shader

    Unity动态高斯模糊效果Shader

    Unity 高斯模糊(Gaussian Blur) 在UGUI中[高效][易用][效果棒]的实用方案

    2019-04-19 新鲜出炉的原创作品 超实用的 Unity 高斯模糊(Gaussian Blur) 在UGUI中[高效][易用][效果棒]的实用方案 原文地址:https://blog.csdn.net/weixin_43452343/article/details/89407650 应该就是你想要

    unity 屏幕模糊

    在Unity中实现"屏幕模糊"效果,是通过图形处理技术来达到视觉上的艺术效果或者功能需求。在游戏开发中,屏幕模糊经常被用来模拟人物的视线模糊、景深效果或者在某些UI元素(如提示面板或对话框)出现时对背景进行...

    unity查找资源引用

    查找资源引用(依赖)

    MonoBehaviour常用方法解释1

    在Unity引擎中,MonoBehaviour是所有用户自定义脚本的基础类,它包含了多个生命周期方法,这些方法在不同的阶段被自动调用,以实现对游戏对象的行为控制。以下是对标题和描述中提到的方法的详细解释: 1. **Start()...

    Unity 高斯模糊Shader

    不同于Unity自带的相机全屏模糊(后处理屏幕特效),是一个材质球的方式,直接模糊当前物体层级的背景图像。可以添加到任何能设置材质球的地方,比如UGUI的一个Panel组件,在Image里的Material中设置此高斯模糊的...

    unity高斯模糊Shader

    基于Unity引擎编写的高斯模糊效果的Shader,真实可用,仅供学习参考

    unity3d 径向模糊效果shader

    unity3d 径向模糊-运动模糊 模糊效果shader

    Unity通用泛型单例设计模式(普通型和继承自MonoBehaviour)

    Unity通用泛型单例设计模式(普通型和继承自MonoBehaviour) Unity通用泛型单例设计模式是指在Unity中使用泛型单例设计模式来实现单例模式的设计模式。单例模式是设计模式中最为常见的,它可以保证一个类只有一个...

    unity查找资源引用关系

    查找图片或其他资源文件在unity项目中在哪里被引用到。 1. 将 FindReference.cs 放在 Assets\Editor目录下 2.重启unity 3.资源管理器中,右键图片,选中 FindReference , 即可在 console 窗口显示相应的引用log信息

    Unity3D中可重载虚函数的总结1

    Unity3D是一个广泛应用于游戏开发的跨平台3D引擎,其核心特性之一是基于C#的脚本系统,通过继承自MonoBehaviour类,开发者可以实现各种游戏逻辑。在Unity3D中,MonoBehaviour类包含了一系列的虚函数,这些函数作为...

    Unity3D UGUI特效之Image高斯模糊效果

    主要为大家详细介绍了Unity3D UGUI特效之Image高斯模糊效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Unity3D运动模糊特效

    开启混合(Blend)后,通过 Alpha 通道控制当前屏幕纹理与历史屏幕纹理进行混合,当有物体运动时,就会...本资源基于 Unity3D 实现了运动模糊特效,效果见→https://zhyan8.blog.csdn.net/article/details/131033499

    Unity 查找选定对象的引用

    选定对象,查找所有的引用地方,目前可查找场景内对象身上的唯一引用和List内的引用,包含选定对象的所有脚本,和GameObject。

    模糊查询.unitypackage

    /// /// 查询内容 /// private InputField queries; /// /// 所有内容 /// private List&lt;string&gt; allStr = new List(); ... /// 当前查询内容 ... private List&lt;string&gt; currentStr = new List();...

Global site tag (gtag.js) - Google Analytics