文件流方式 删除prefab空脚本
/// <summary>
/// 删除一个Prefab上的空脚本
/// </summary>
/// <param name="path">prefab路径 例Assets/Resources/FriendInfo.prefab</param>
private void DeleteNullScript(string path)
{
bool isNull = false;
string s = File.ReadAllText(path); Regex regBlock = new Regex("MonoBehaviour"); // 以"---"划分组件
string[] strArray = s.Split(new string[] { "---" }, StringSplitOptions.RemoveEmptyEntries); for (int i = ; i < strArray.Length; i++)
{
string blockStr = strArray[i]; if (regBlock.IsMatch(blockStr))
{
// 模块是 MonoBehavior
Match guidMatch = Regex.Match(blockStr, "m_Script: {fileID: (.*), guid: (?<GuidValue>.*?), type:");
if (guidMatch.Success)
{
// 获取 MonoBehavior的guid
string guid = guidMatch.Groups["GuidValue"].Value;
//Debug.Log("Guid:" + guid); if (string.IsNullOrEmpty(GetScriptPath(guid)))
{
// 工程中无此脚本 空脚本!!!
//Debug.Log("空脚本");
isNull = true; // 删除操作 // 删除MonoScript
s = s.Replace("---" + blockStr, ""); Match idMatch = Regex.Match(blockStr, "!u!(.*) &(?<idValue>.*?)\r");
if (idMatch.Success)
{
// 获取 MonoBehavior的guid
string id = idMatch.Groups["idValue"].Value; // 删除MonoScript的引用
Regex quote = new Regex(" - (.*): {fileID: " + id + "}");
s = quote.Replace(s, "");
} } } } } if (isNull)
{
// 有空脚本 写回prefab
File.WriteAllText(path, s); // 打印Log
Debug.Log(path);
}
}
文件流方式 删除prefab空脚本的更多相关文章
- linux shell 脚本 历史文件清理脚本,按天,按月,清理前N天的历史文件,删除指定大小历史文件,历史文件归档清理
不知道大家那有没有要清理的这个事情.需要清理目录历史文件.可能后续也会有很多其他地方需要清理历史文件,可能会用到. 我这两天空闲写了个脚本,清理比较方便,有要进行清理的大量历史文件的话可以用. 脚本用 ...
- mac 下删除非空文件夹
Linux中rmdir命令是用来删除空的目录.使用方式: rmdir [-p] dirName 参数: -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除. 举例说明:rmdir folde ...
- QT删除非空文件夹
int choose; choose = QMessageBox::warning(NULL,"warning","确定删除该文件?",QMessageBox: ...
- 《Advanced Bash-scripting Guide》学习(一):对一个增强和广义的删除logfile的脚本的理解
本文所选的例子来自于<Advanced Bash-scripting Gudie>一书,译者 杨春敏 黄毅 cleanup:一个增强和广义的删除logfile的脚本 #!/bin/bash ...
- Shell脚本使用汇总整理——文件夹及子文件备份脚本
Shell脚本使用汇总整理——文件夹及子文件备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/9223477.html ...
- 文件上传漏洞演示脚本之js验证
文件上传漏洞演示脚本之js验证 0 0 716 关于文件上传漏洞,想必玩web安全的同学们都有接触,之前本站也发布过一篇文章介绍文件上传漏洞的各种绕过方法,但是只是有文档却没有演示代码 ...
- Mac下关于——你不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效。文件的删除
内容是google的,测试有效,因为用revel打包的东西删除以后有这个循环bug Mac下关于——你不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效.文件的删除 关于这个问题我找到的一 ...
- ASP FSO操作文件(复制文件、重命名文件、删除文件、替换字符串)
ASP FSO操作文件(复制文件.重命名文件.删除文件.替换字符串)FSO的意思是FileSystemObject,即文件系统对象.FSO对象模型包含在Scripting 类型库 (Scrrun.Dl ...
- unity中.meta提交错误操作导致空脚本
工作时遇到了一个奇葩的问题,同事做的界面,再策划那里死活无法运行,其他同事的都没有问题.简单一查,是界面上挂了个空脚本,但是同事提交了对应的脚本,其他人那里脚本是正常.随后想到是否是.meta的问题. ...
随机推荐
- 【iCore4 双核心板_FPGA】例程三:计数器实验——计数器使用
实验现象: 绿色led闪烁 核心源代码: //--------------------module_counter_ctrl--------------------// module counter_ ...
- [Linux实用工具]Windows下同步Linux文件(Linux安装Samba和配置)
场景需求: 安装了Ubuntu在虚拟机上,但是代码编辑或者其它更多的操作的时候,还是习惯在windows下进行.如果windows下编辑完再上传到服务器,再编译执行,就太繁琐了.一次两次还好说,这编译 ...
- 编译JDK源代码【转】
用Eclipse Debug,当跟踪进jdk api里时(比如javax.swing包里的类),无法查看某些local filed的值.这是因为jdk里的代码在打包时删除了一些用于调试的信息,以减小安 ...
- sqoop 常用命令整理(二)
26.Validate 它用来比较源数据和目标数据的数量 它有三个接口 Validator. 它有三个接口 Validator. Property: validator Description: Dr ...
- CSS(三):引入样式和优先级
CSS的引入样式总共有三种:行内样式(内联样式表).内部样式表.外部样式表.下面分别来介绍这三种样式. 一.行内样式 行内样式也叫内联样式,使用style属性引入CSS样式.看下面的示例: <! ...
- 解决Linux里面未启用网卡的问题
在Linux中可以使用ifconfig命令查询ip,如下图所示: 这时你会发现会提示command not found,说明安装的CentOS是简易版本的,其中一些命名没有,需要我们手动进行安装.安装 ...
- Spring Cloud搭建手册(2)——Spring Cloud Config
※在Dalston.SR2版本以后,均不能正常加密,如果必须使用此功能,需要降级到SR1或Camden SR7. 1.首先需要创建一个config-server工程,作为配置中心的服务器,用来与git ...
- ubuntu下IDEA配置tomcat报错Warning the selected directory is not a valid tomcat home
产生这个问题的主要原因是文件夹权限问题. 可以修改文件夹权限或者更改tomcat文件目录所有者. 这里我直接变更tomcat文件夹所有者: sudo chown -R skh:skh tomcat-/ ...
- 微信支付WxpayAPI_php_v3(三)支付成功回调
接收回调通知后的业务处理都在NotifyProcess做,$data包含了微信返回给你的数据. Service: <?php /** * Created by PhpStorm. * User: ...
- Linux 客户端bind函数的使用
无连接的socket的客户端和服务端以及面向连接socket的服务端通过调用bind函数来配置本地信息. 使用bind函数时,通过将my_addr.sin_port置为0,函数会自动为你选择一个未占用 ...