1 前言
默认创建的脚本头部是没有注释的,有时候我们想要在创建脚本时在脚本内容的最前面加上一个注释来标注脚本的相关信息,比如创建者、创建时间、描述等等。那么提供有两种实现方式。
2 方法
2.1 修改Unity的脚本Script
打开Unity Hub,找到安装的Unity,按下图操作打开本地文件。
然后找到下图目录中的文件,此即为模板文件。
打开后在首部添加注释内容保存即可。这里就不演示了。
虽然这种方式提供了头部注释,但非常的死板,提供的内容都是固定的,具有较大的局限性。
2.2 使用Editor脚本添加头部注释
这种方式是提供一个Editor脚本,在我们每创建一个脚本时,都有此Ediotr脚本执行代码在新脚本的头部添加注释内容。这种方式可以提供动态内容到注释中,比如当前时间等。脚本代码如下,创建好后放到Editor文件夹下。
using System.Collections;
using System.IO;
using System;
using UnityEditor;
using Unity.EditorCoroutines.Editor;
namespace Mine.Framework.Editor
{
public class ScriptCreateInitializer : UnityEditor.AssetModificationProcessor
{
//头部文本
private static string strContent =
"/*----------------------------------------------------------------\r\n" +
"* 创建者:(Username)\r\n" +
"* 电子邮箱:(UserEmail)\r\n" +
"* 设备名称:(MachineName)\r\n" +
"* 创建时间:(CreateTime)\r\n" +
"* 描述:\r\n" +
"* ----------------------------------------------------------------\r\n" +
"* 修改人:\r\n" +
"* 时间:\r\n" +
"* 修改说明:\r\n" +
"* 版本:\r\n" +
"*----------------------------------------------------------------*/\r\n";
private static void OnWillCreateAsset(string path)
{
EditorCoroutineUtility.StartCoroutineOwnerless(AddHeardTextForScript(path));
}
private static IEnumerator AddHeardTextForScript(string path)
{
//等待一帧,等待文件创建
yield return null;
//去除路径中的.meta,为了将xxx.cs.meta这种文件也通过下面的后缀.cs判断(暂时不处理.meta了)
//path = path.Replace(".meta", "");
//判断是否是.cs文件
if (path.ToLower().EndsWith(".cs"))
{
//创建头部文本变量
string heardText = null;
//替换相关文本
heardText = strContent
.Replace("(Username)", System.Environment.UserName)
.Replace("(UserEmail)", "")
.Replace("(MachineName)", System.Environment.MachineName)
.Replace("(CreateTime)", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
//头部文本+脚本内容
heardText += File.ReadAllText(path);
//写入文件
File.WriteAllText(path, heardText);
//刷新
AssetDatabase.Refresh();
}
}
}
}
之后当我们创建新脚本时,其头部就自带注释了。
3 后记
肯定还有更好的方法,这里只是提供两种比较简单的方法来使用。