声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改。
文字标题(同文字大标题相同)
文章目录
一.开发环境
unity 无限制
VS 无限制
二.问题描述
为新创建的 C# 脚本自动添加自定义的头部注释,例如包含作者、创建时间、版本等信息,以统一项目代码规范。
三.解决方案原理及代码
实现原理:
继承UnityEditor.AssetModificationProcessor类实现OnWillCreateAsset()方法,会在添加资源时调用.在内部实现对应头注释信息
对应代码:

效果展示
csharp
using System;
using System.IO;
/// <summary>
/// 添加头部注释
/// </summary>
public class AddScriptInfo : UnityEditor.AssetModificationProcessor
{
private static string fileDescribe =
"/********************************************************************\n" +
"* 版本声明: v1.0.0\n" +
"* 类 名 称:#SCRIPTNAME#\n" +
"* 作者名称:#CreateAuthor#\n" +
"* 创建日期:#CreateTime#\n" +
"* 对应U3D:通用无限制\n" +
"* 功能描述:Nothing\n" +
"*********************************************************************/\n\n";
/// <summary>
/// 在创建资源的时候执行的函数
/// </summary>
/// <param name="path">路径</param>
private static void OnWillCreateAsset(string path)
{
//将.meta后缀屏蔽,避免获取到的是新建脚本时候的 meta 文件
path = path.Replace(".meta", "");
//只对.cs脚本作操作
if (path.EndsWith(".cs") == true)
{
// 文件名的分割获取
string[] iterm = path.Split('/');
string str = fileDescribe;
//读取该路径下的.cs文件中的所有文本.
//注意,此时Unity已经对脚本完成了模版内容的替换,包括#SCRIPTNAME#也已经被替换为文件名了,读取到的是替换后的文本内容
str += File.ReadAllText(path);
// 进行关键字的文件名、作者和时间获取,并替换
str = str.Replace("#SCRIPTNAME#", iterm[iterm.Length - 1]).Replace(
"#CreateAuthor#", "明哲").Replace(
"#CreateTime#", string.Format("{0:0000}/{1:00}/{2:00} {3:00}:{4:00}:{5:00}", DateTime.Now.Year,
DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute,
DateTime.Now.Second));
// 重新写入脚本中,完成数据修改
File.WriteAllText(path, str);
}
}
}
*注意事项:*放Editor文件夹下
四.总结
保持饥饿,保持愚蠢.
这世界唯一能够相信的就是你付出的努力在这里插入图片描述
和你走过的路.