[Unity工具]查找GameObject在场景中所有被引用的地方
参考链接:
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在场景中所有被引用的地方的更多相关文章
- unity 查找脚本被场景中哪些对象引用
在需要查找的脚本上右键: 在场景中已经显示出所有引用该脚本的对象
- 在unity中用鼠标实现在场景中拖动物体,用鼠标滚轮实现缩放
在场景中添加一个Plan,Camera,Directional Light,Cube.添加两个脚本scrollerScirpt(挂在Camera),CubeDragScript(挂在Cube上). 1 ...
- eclipse中查找类、方法及变量被引用的地方
1.选中要查看的类.方法或变量,然后Ctrl+Shift+G或右键-->References--->Project,就可以找到它所有被引用的地方. 2.对于方法,还可以通过右键--> ...
- Unity查找子物体的方式-怎么查找GameObject
Unity动态查找物体 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创 ...
- unity NGUI点击消息不传入到场景中去
unity NGUI点击消息不传入到场景中去 1.今天遇到的问题是点击NGUI的按钮,场景中也相应了这个消息 解决的办法是在场景中需要互动的时候,也就是在update中进行判断 是否是点击了NGUI按 ...
- 使用Unity中的Box Collider组件完成游戏场景中的碰撞检测功能
一.介绍 目的:通过Unity自带的组件完成游戏场景中的碰撞检测功能. 软件环境:Unity 2017.3.0f3 二.实现过程 1,在面板中点击Add Component按钮 2,添加Box Col ...
- 在Unity场景中更改天空盒的步骤
一.介绍 目的:在Unity场景中制作一个天空盒. 软件环境:Unity 2017.3.0f3,VS2013. 参考 skybox 二.自制一个天空盒 1,创建一个材质material 2,更改属性为 ...
- 在Unity场景中控制日夜的轮转
一.介绍 目的:通过在Unity场景中添加C#脚本完成日夜轮转的效果. 软件环境:Unity 2017.3.0f3,VS2013 二.操作过程 通过拖拽场景中的Directional Light我们知 ...
- untiy3d小工具——修改scene与prefab中的sprite
坑1:因为替换图片要获取所有包含image的组件,开始我使用的是gameobject.getComponents<Image>()和FindObjectsOfType<Image&g ...
随机推荐
- 基于Eclipse搭建hadoop开发环境
一.基础环境准备 1.Eclipse 下载地址:http://pan.baidu.com/s/1slArxAP 2.JDK1.8 下载地址:http://pan.baidu.com/s/1i5iNy ...
- position实现分层和遮罩层功能
很多网站,当点了一个按钮后,弹出一个窗口,底层变透明不可选,就是用到层的概念,至少三层 第一层,底层原始层 第二层,遮罩层,用到positon: fixed; top bottom left righ ...
- 什么是词性标注(POS tagging)
词性标注也叫词类标注,POS tagging是part-of-speech tagging的缩写. 维基百科对POS Tagging的定义: In corpus linguistics, part-o ...
- 使用influxQL进行数据检索(说明)
非官方:InfluxDB 基本命令操作文档 原地址:https://docs.influxdata.com/influxdb/v1.6/query_language/data_exploration/ ...
- Flsk-Werkzeug-请求参数获取备忘
Werkzeug:response,request,routing 获取请求参数:data,form,args,files,cookies,headers,method,url routing:Rul ...
- html json 导出Excel
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- [蓝桥杯]ALGO-101.算法训练_图形显示
问题描述 编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数): * * * * * * * * * * * * * * * 题目描述 代码如下: #include < ...
- Reg2Bat_By Slore(生成同名bat文件,支持XP WIN7 WIN7X64).vbs
原文http://slore.blogbus.com/logs/52627038.htmlSlore编写的这个reg文件转换为bat文件,是逐句转换的,不是通过批处理生成临时reg文件然后导入的方法, ...
- ribbon的注解使用报错--No instances available for [IP]
使用RestTemplate类调用其他系统的url的时候,加上ribbon的注解@LoadBalanced上这个注解之后访问,就报错了. 报错如下: 因为这里你不能直接访问地址,需要把地址改成你所调用 ...
- shell文件描述符和重定向
1.文件描述符是与一个打开的文件或数据流相关联的整数.文件描述符0,1,2是系统预留的. 0 --------stdin(标准输入) 1 --------stdout(标准输出) 2--------- ...