相信很多人都喜欢在创建脚本时添加这样的注释说明,以前做Android开发用Eclipse设置过这样的脚本模板,所以也想在Unity上添加,从网上搜索资料得,首先找到Unity安装目录下的(注意:修改的是Unity脚本模板而不是vs或者momo里的)
“Unity\Editor\Data\Resources\ScriptTemplates ”
打开“81-C# Script-NewBehaviourScript.cs”文件,如下:
using UnityEngine;
using System.Collections;
public class #SCRIPTNAME# : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
看到了吧,这个和我们在Unity创建C#脚本时自动生成的是不是一样,唯一区别的是宏#SCRIPTNAME#,这个宏会跟随我们创建的脚本名变化,这个功能也是我们自定义脚本模板的重要功能,后来我在这个文件的最上面添加了我的自定义注释,然后加了个自定义的#CreateTime#,是想在创建脚本时显示创建时间。
比如这样:
using UnityEngine;
using System.Collections;
// ========================================================
// 描 述:
// 作 者:
// 创建时间:#CreateTime#
// 版 本:v 1.0
// ========================================================
public class #SCRIPTNAME# : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
结果发现这个时间一直显示为#CreateTime#不会变的。原来#SCRIPTNAME#是Unity自定义的一个宏,所以你想添加时间,必须也要自定义。然后自己找了好久也没找到在哪修改,最后找了一个直接在项目里修改的办法。如果修改本地文件的话,每次创建新项目都会生成这个新脚本模板,同时还要在项目里修改添加时间自定义。再加上我只喜欢在正式项目里才想加这个注释模板,有些并不想加,所以干脆把其他注释全部的添加到项目里,方便管理,具体如下:
该脚本需放到Editor文件夹内
using UnityEngine;
using System.Collections;
using System.IO;
public class ChangeScriptTemplates : UnityEditor.AssetModificationProcessor
{
// 添加脚本注释模板
private static string str =
"// ========================================================\r\n"
+"// 描 述:\r\n"
+"// 作 者:xfn \r\n"
+"// 创建时间:#CreateTime#\r\n"
+"// 版 本:v 1.0\r\n"
+"// ========================================================\r\n";
// 创建资源调用
public static void OnWillCreateAsset(string path)
{
// 只修改C#脚本
path = path.Replace(".meta", "");
if (path.EndsWith(".cs"))
{
string allText = str;
allText += File.ReadAllText(path);
// 替换字符串为系统时间
allText = allText.Replace("#CreateTime#",System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
File.WriteAllText(path, allText);
}
}
}