40 lines
1.9 KiB
C#
40 lines
1.9 KiB
C#
using System;
|
||
using System.IO;
|
||
|
||
namespace Stary.Evo.Editor
|
||
{
|
||
public class ChangeScriptTemplates : UnityEditor.AssetModificationProcessor
|
||
{
|
||
// 要添加的注释的内容
|
||
private static string annotationStr =
|
||
"/**************************************************** \r\n"
|
||
+ " 文件:#Filename\r\n"
|
||
+ " 作者:#CreateAuthor#\r\n"
|
||
+ " 邮箱:\r\n"
|
||
+ " 日期:#CreateTime#\r\n"
|
||
+ " 功能:\r\n"
|
||
+ "*****************************************************/\r\n\n";
|
||
|
||
public static void OnWillCreateAsset(string path)
|
||
{
|
||
//将.meta后缀屏蔽
|
||
path = path.Replace(".meta", "");
|
||
//只对.cs脚本作操作
|
||
if (path.EndsWith(".cs"))
|
||
{
|
||
//读取该路径下的.cs文件中的所有文本.
|
||
//注意,此时Unity已经对脚本完成了模版内容的替换,包括#SCRIPTNAME#也已经被替换为文件名了,读取到的是替换后的文本内容.
|
||
annotationStr += File.ReadAllText(path);
|
||
//获取用户名和当前系统时间并替换对应位置内容
|
||
annotationStr = annotationStr.Replace("#CreateAuthor#", Environment.UserName)
|
||
.Replace("#CreateTime#", string.Concat(DateTime.Now.Year, "/", DateTime.Now.Month, "/",
|
||
DateTime.Now.Day, " ", DateTime.Now.Hour, ":", DateTime.Now.Minute, ":", DateTime.Now.Second))
|
||
.Replace("#Filename", Path.GetFileName(path));
|
||
if (!File.ReadAllText(path).Contains("文件") && !File.ReadAllText(path).Contains("作者") && !File.ReadAllText(path).Contains("邮箱") && !File.ReadAllText(path).Contains("日期") && !File.ReadAllText(path).Contains("功能"))
|
||
//重新将文本写入.cs文件
|
||
File.WriteAllText(path, annotationStr);
|
||
}
|
||
|
||
}
|
||
}
|
||
} |