参考链接:

https://blog.csdn.net/hjzyzr/article/details/53316919?utm_source=blogxgwz4

https://blog.csdn.net/weixin_39706943/article/details/80507276

0.场景如下:

1.获取场景中所有的Go,包括嵌套的,隐藏的。需要注意的是要进行go.scene.name != null,这句判断,否则会包含很多来自其他地方的go(不只是来自Project视图)

 using UnityEngine;
using UnityEditor; /// <summary>
/// 查找GameObject在场景中所有被引用的地方
/// </summary>
public class FindGoInScene { [MenuItem("GameObject/FindGoInScene", priority = )]
static void Init()
{
GameObject[] goes = Resources.FindObjectsOfTypeAll<GameObject>();
for (int i = ; i < goes.Length; i++)
{
GameObject go = goes[i];
if (go.scene.name != null)
{
Debug.Log(go.name);
}
}
}
}

输出如下:

2.查找引用

TestFindGoInScene.cs

 using UnityEngine;

 public class TestFindGoInScene : MonoBehaviour {

     public GameObject temp;
}

FindGoInScene.cs

 using UnityEngine;
using UnityEditor;
using System.Reflection; /// <summary>
/// 查找GameObject在场景中所有被引用的地方
/// </summary>
public class FindGoInScene { [MenuItem("GameObject/FindGoInScene", priority = )]
static void Init()
{
GameObject[] goes = Resources.FindObjectsOfTypeAll<GameObject>();
for (int i = ; i < goes.Length; i++)
{
GameObject go = goes[i];
if (go.scene.name != null)
{
if (go != Selection.activeGameObject)
{
//Debug.Log(go.name);
Find(go);
}
}
}
} static void Find(GameObject go)
{
Component[] components = go.GetComponents<Component>();
for (int i = ; i < components.Length; i++)
{
Component component = components[i];
FieldInfo[] fields = component.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance);
for (int j = ; j < fields.Length; j++)
{
var value = fields[j].GetValue(component);
if (value == (object)Selection.activeGameObject)
{
Debug.LogWarning(go.name);
}
}
}
}
}

输出如下:

[Unity工具]查找GameObject在场景中所有被引用的地方的更多相关文章

  1. unity 查找脚本被场景中哪些对象引用

    在需要查找的脚本上右键: 在场景中已经显示出所有引用该脚本的对象

  2. 在unity中用鼠标实现在场景中拖动物体,用鼠标滚轮实现缩放

    在场景中添加一个Plan,Camera,Directional Light,Cube.添加两个脚本scrollerScirpt(挂在Camera),CubeDragScript(挂在Cube上). 1 ...

  3. eclipse中查找类、方法及变量被引用的地方

    1.选中要查看的类.方法或变量,然后Ctrl+Shift+G或右键-->References--->Project,就可以找到它所有被引用的地方. 2.对于方法,还可以通过右键--> ...

  4. Unity查找子物体的方式-怎么查找GameObject

    Unity动态查找物体 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创 ...

  5. unity NGUI点击消息不传入到场景中去

    unity NGUI点击消息不传入到场景中去 1.今天遇到的问题是点击NGUI的按钮,场景中也相应了这个消息 解决的办法是在场景中需要互动的时候,也就是在update中进行判断 是否是点击了NGUI按 ...

  6. 使用Unity中的Box Collider组件完成游戏场景中的碰撞检测功能

    一.介绍 目的:通过Unity自带的组件完成游戏场景中的碰撞检测功能. 软件环境:Unity 2017.3.0f3 二.实现过程 1,在面板中点击Add Component按钮 2,添加Box Col ...

  7. 在Unity场景中更改天空盒的步骤

    一.介绍 目的:在Unity场景中制作一个天空盒. 软件环境:Unity 2017.3.0f3,VS2013. 参考 skybox 二.自制一个天空盒 1,创建一个材质material 2,更改属性为 ...

  8. 在Unity场景中控制日夜的轮转

    一.介绍 目的:通过在Unity场景中添加C#脚本完成日夜轮转的效果. 软件环境:Unity 2017.3.0f3,VS2013 二.操作过程 通过拖拽场景中的Directional Light我们知 ...

  9. untiy3d小工具——修改scene与prefab中的sprite

    坑1:因为替换图片要获取所有包含image的组件,开始我使用的是gameobject.getComponents<Image>()和FindObjectsOfType<Image&g ...

随机推荐

  1. ByteType字符串中判断是否英文

    ByteType('123你好吗',1)=mbSingleByte//单字节ByteType('123你好吗',4)=mbLeadByte//双字节字符的第一个字符ByteType('123你好吗', ...

  2. sql server 清除数据库中所有表的数据

    CREATE PROCEDURE  sp_DeleteAllData AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'- ...

  3. 通过Word 2016 发布的内容

    从Word 2007 开始就支持的功能的,第一次使用. 在cnBlogs.com的个人设置中允许使用客户端发布:https://i.cnblogs.com/Configure.aspx Word中配置 ...

  4. vagrant 安装笔记

    本文档的编写参考慕课网视频教程,感谢慕课网提供的免费教程 http://www.imooc.com/learn/805 搭建一个环境,不需要重复配置,直接利用vagrant复制就可以了 https:/ ...

  5. linux开机出现一下错误Give root password for maintenance (or type Control-D to continue):

    由于错误的编辑/etc/fstab文件 而引起的不能正常进入系统.假如你将某一个分区或者磁盘最后一个参数设置为1或2时,系统默认会在开机过程中检查这个磁盘的扇区.假如系统检查不到这个磁盘,或者这个磁盘 ...

  6. Java第06次实验提纲(集合)

    PTA与参考资料 重要参考-集合简述 题集:jmu-Java-06-集合 集合实验文件 第1次实验 1.1 ArrayListIntegerStack(课堂演示) 可演示:jdk中的javadoc文档 ...

  7. Java HashMap的死循环 以及 LRUCache的正确实现

    今天RP爆发,16核服务器load飙到30多,cpu使用情况全部99%以上. 从jstack中分析发现全部线程都堵在map.transfer处,如下: "pool-10-thread-23& ...

  8. Android开发之adb,$Sqlite篇

    一. 操作系统: 1. linux操作系统: linux操作系统其实就是Linux内核,Linux内核[kernel]是整个操作系统的最底层,它负责整个硬件的驱动,以及提供各种系统所需的核心功能,包括 ...

  9. Java学习——多线程例子:李四王五

    package cys; public class Example9_2 { public static void main(String[] args) { // TODO Auto-generat ...

  10. 用ADB打开MUMU模拟器的WLAN用于设置代理IP

    adb connect 127.0.0.1:7555 adb shell am start -a android.intent.action.MAIN -n com.android.settings/ ...