如题。
借大腿宝地,发一点东西。 感谢!文章源自大腿Plus-https://www.zhaoshijun.com/archives/227
- 新建Editor文件夹,把脚本放进去,
- 拖选你要找的物体上去。
- 选择你从那些物体里查找,简单点就ctrl+a 全选得了。点击按钮,
- 如果有会打印在console面板。
| 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | using UnityEngine; using System.Collections; using UnityEditor; using System.Reflection; using System; using System.Linq; using System.Collections.Generic; namespace ToolManage {     /// <summary>  查找一个物体拖拽到了哪些物体上。 </summary>      public class FindDragObject : ScriptableWizard     {         public GameObject targetObj;         public void OnWizardUpdate()         {             helpString = "选择你要查看的物体";             isValid = targetObj != null;         }         private void OnWizardCreate()         {             GameObject[] roots = Selection.gameObjects;             Dictionary<string, GameObject> dic = new Dictionary<string, GameObject>();             foreach (var item in roots)             {                 if (!dic.ContainsKey(item.transform.root.name))                     dic.Add(item.transform.root.name, item.transform.root.gameObject);             }             foreach (var item in dic) { GetCompent(item.Value); }         }         private void GetCompent(GameObject gameObject)         {             Component[] components = gameObject.GetComponentsInChildren<Component>();             foreach (var item in components)             {                 GetPropertiesInCompent(item);             }         }         private void GetPropertiesInCompent(Component item)         {             if (item.gameObject == targetObj) { return; }             List<PropertyInfo> properties = item.GetType().GetProperties().Where(p => p.PropertyType.IsPublic && !p.PropertyType.IsValueType && p.PropertyType != typeof(Component)).ToList<PropertyInfo>();             foreach (var propertyItem in properties)             {                 var value = propertyItem.GetValue(item, null);                 if (value != null)                 {                     if (value == (object)targetObj)                     {                         Debug.Log("找到名称为下列的物体"); Debug.Log(item.gameObject.name);                     }                 }             }             GetFieldsInCompent(item);         }         private void GetFieldsInCompent(Component item)         {             List<FieldInfo> fields = item.GetType().GetFields().Where(p => p.FieldType.IsPublic && !p.FieldType.IsValueType).ToList<FieldInfo>(); foreach (var fieldItem in fields)             {                 var value = fieldItem.GetValue(item);                 if (value != null)                 {                     if (value == (object)targetObj)                     {                         Debug.Log("找到名称为下列的物体");                         Debug.Log(item.gameObject.name);                     }                 }             }         }         [MenuItem("Tools/开始查询")]         public static void FindObjectNames()         {             ScriptableWizard.DisplayWizard<FindDragObject>("FindNames", "FindObjectNames");         }     } } | 
可能会有一些问题,有问题大家提,一起修改哈。文章源自大腿Plus-https://www.zhaoshijun.com/archives/227 文章源自大腿Plus-https://www.zhaoshijun.com/archives/227
					我的微信
				
				微信扫一扫
				 
					shijun_z
					
					我的QQ
				
				QQ扫一扫
				 
					846207670
					 
							

 
					
评论