1. [MenuItem("Tools/Check Text Count")]
  2. public static void CheckText ()
  3. {
  4. //查找指定路径下指定类型的所有资源,返回的是资源GUID
  5. string[] guids = AssetDatabase.FindAssets ("t:GameObject", new string[] { "Assets/Resources/UI" });
  6. //从GUID获得资源所在路径
  7. List<string> paths = new List<string> ();
  8. guids.ToList ().ForEach (m => paths.Add (AssetDatabase.GUIDToAssetPath (m)));
  9. //从路径获得该资源
  10. List<GameObject> objs = new List<GameObject> ();
  11. paths.ForEach (p => objs.Add (AssetDatabase.LoadAssetAtPath (p, typeof (GameObject)) as GameObject));
  12. //下面就可以对该资源做任何你想要的操作了,如查找已丢失的脚本、检查赋值命名等,这里查找所有的Text组件个数
  13. List<Text> texts = new List<Text> ();
  14. objs.ForEach (o => texts.AddRange (o.GetComponentsInChildren<Text> (true)));
  15. Debug.Log ("Text count:" + texts.Count);
  16. }

查找到你想要处理的资源后可以进行各种自定操作了,可参考以下博主的示例:

http://www.xuanyusong.com/archives/3727

其中删除missing的脚本很有用哦,单独Mark一下:

  1. [MenuItem("Edit/Cleanup Missing Scripts")]
  2. static void CleanupMissingScripts ()
  3. {
  4. for(int i = ; i < Selection.gameObjects.Length; i++)
  5. {
  6. var gameObject = Selection.gameObjects[i];
  7.  
  8. // We must use the GetComponents array to actually detect missing components
  9. var components = gameObject.GetComponents<Component>();
  10.  
  11. // Create a serialized object so that we can edit the component list
  12. var serializedObject = new SerializedObject(gameObject);
  13. // Find the component list property
  14. var prop = serializedObject.FindProperty("m_Component");
  15.  
  16. // Track how many components we've removed
  17. int r = ;
  18.  
  19. // Iterate over all components
  20. for(int j = ; j < components.Length; j++)
  21. {
  22. // Check if the ref is null
  23. if(components[j] == null)
  24. {
  25. // If so, remove from the serialized component array
  26. prop.DeleteArrayElementAtIndex(j-r);
  27. // Increment removed count
  28. r++;
  29. }
  30. }
  31.  
  32. // Apply our changes to the game object
  33. serializedObject.ApplyModifiedProperties();
  34. //这一行一定要加!!!
  35. EditorUtility.SetDirty(gameObject);
  36. }
  37. }

Unity查找Editor下Project视图中特定的资源的更多相关文章

  1. 【Unity】13.1 场景视图中的GI可视化

    分类:Unity.C#.VS2015 创建日期:2016-05-19 一.简介 在场景视图中设计不同的场景内容时,可以根据需要勾选相关的渲染选项,以便让场景仅显示其中的一部分或者全部渲染效果. 在这些 ...

  2. MFC中 在SDI模式下的视图中添加按钮的方法

    在单文档视图(SDI)结构中,视图一般用来显示数据.但是,有时也希望在视图中显示按钮或其他的控件,以满足用户的需要.下面是手动添加按钮并使按钮具有响应事件的功能的方法. 第一步:添加一个按钮      ...

  3. Android 开发中eclipse 下 DDMS 视图中 sdcard 中文件导入的处理

    首先需要说明下,这里说的sdcard的权限并不是指在Android application程序中设置sdcard的权限读 取问题.而是指在DDMS看到的目录下的那个sdcard目录的权限问题.     ...

  4. 批量修改Project视图中Prefab的名字

    简要代码如下: using UnityEditor; using UnityEngine; using System.IO; using System.Collections; using Syste ...

  5. (转)Unity Assets目录下的特殊文件夹名称(作用和是否会被打包到build中)

    原文:http://wiki.unity3d.com/index.php/Special_Folder_Names_in_your_Assets_Folder 1.隐藏文件夹以.开头的文件夹会被Uni ...

  6. Unity Editor 下创建Lua和Text文件

    预览 在Project视图中,扩展右键菜单,右键 – Create - Text File 创建一个Text文件,或者Lua文件. 关键点 获取当前选择的路径,以Assets路径开头 var sele ...

  7. Unity Assets目录下的特殊文件夹名称

    1.隐藏文件夹以.开头的文件夹会被Unity忽略.在这种文件夹中的资源不会被导入,脚本不会被编译.也不会出现在Project视图中.2.Standard Assets在这个文件夹中的脚本最先被编译.这 ...

  8. 【Unity基础知识之三】Unity Assets目录下的特殊文件夹名称

    Unity3D的特殊目录名称   Unity预留了一些目录名称,这些目录有着特殊的含义.比较重要的有: Resources这个目录下的所有文件都会被打包到发布版本中,程序可以通过文件路径来访问它们.这 ...

  9. Unity查找物体的子物体、孙物体

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

随机推荐

  1. CountDownTimer

    package com.daoge.widget; import java.text.DecimalFormat; import android.os.CountDownTimer; import a ...

  2. struts2_6_多个struts配置文件的应用

    在大部分应用里,随着应用规模的添加,系统中Action的数量也会大量添加.导致struts.xml配置文件变的很臃肿,为了避免struts.xml文件过于庞大.臃肿,提高struts.xml文件的可读 ...

  3. IOS获取当前地理位置文本

    本文转载至  http://blog.csdn.net/lvxiangan/article/details/28101119   以下内容摘抄自网络,著作权属于原作者 方法1:使用ios自带联网查询功 ...

  4. l两张图片轮播

    在head里面加 <script language="javascript"> function scroll(spanlevel) { if (spanlevel.s ...

  5. Mybatis之Mapper动态代理

    一.什么是Mapper的动态代理 采用Mapper动态代理方法只需要编写相应的Mapper接口(相当于Dao接口),那么Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同Dao接 ...

  6. native2ascii转码工具的使用

    native2ascii转码工具是JDK自带的一种,方便我们将非unicode的编码文件转为unicode格式的文件,位置一般是位于JAVA_HOME/bin目录下. Why? 在做Java开发的时候 ...

  7. PPID=1 runs as a background process, rather than being under the direct control of an interactive user

    https://en.wikipedia.org/wiki/Daemon_(computing) [后台进程,非互动] d 结尾 syslogd 系统日志记录 sshd 响应ssh连接请求 In mu ...

  8. JAVA 水果机游戏及编码

    [转自 http://tech.it168.com/j/2007-11-07/200711070910328_1.shtml] 3.      游戏的开发与编码 在我们开发这个游戏之前,我们先讲一个这 ...

  9. css 样式(checkbox开关、css按钮)

    checkbox开关 css .iosCheck { /* Blue edition */ } .iosCheck input { display: none; } .iosCheck i { dis ...

  10. Java多线程系列 基础篇04 线程中断

    1. 中断线程 中断可以理解为线程的一个标志位属性,它表示一个运行中的线程是否被其他线程进行了中断操作,其他线程通过调用该线程的interrupt()方法对其进行中断操作,线程通过检查自身是否被中断来 ...