Unity 基础 之 新创建脚本的时候自动添加头部格式模板注释/开始处文件描述(文件头规范)
Unity 基础 之 新创建脚本的时候自动添加头部格式模板注释/开始处文件描述(文件头规范)
目录
Unity 基础 之 新创建脚本的时候自动添加头部格式模板注释/开始处文件描述(文件头规范)
六、脚本自动添加文件描述(文件头)模板(注意文件名:81-C# Script-NewBehaviourScript.cs.txt)
八、不用修改Unity安装路径下的模板文件,创建脚本的时候自动添加模板注释文件描述的方法
一、简单介绍
Unity中的一些基础知识点。
Unity游戏开发中,在新创建脚本的时候,自动添加自己设置的文件(头)描述,还可以动态自动修改脚本的创建的时间。
二、实现原理
1、修改替换 Unity 安装目录下的脚本模板,设计成自己想要内容;
(你的安装目录\Unity\Editor\Data\Resources\ScriptTemplates)
2、在工程中添加一个脚本,动态修改需要在创建脚本的时候动态修改的内容,比如时间;
三、注意事项
1、修改的模板文件为 ' 81-C# Script-NewBehaviourScript.cs.txt ';
2、注意要排除同时创建 .meta 文件;
( //将.meta后缀屏蔽,避免获取到的是新建脚本时候的 meta 文件
path = path.Replace(".meta", ""); )
3、其实可以不用修改Unity 路径下的模板的内容,直接在文件创建的时候把文件描述添加到脚本开始即可;
(见第八)
四、效果预览
五、实现步骤
1、在你的 Unity 安装目录,找到文件 81-C# Script-NewBehaviourScript.cs.txt,排除错的的话,你可以备份一份,如下图
(大致路径为 :你的安装目录\Unity\Editor\Data\Resources\ScriptTemplates)
2、打开文件进行修改,内容根据自己需要添加即可,参照如下如
3、打开 Unity,新建一个工程,载工程中新建一个 Editor 文件夹,并新建一个脚本,如下图
4、打开脚本进行编辑,添加脚本创建的时候读取文件内容,动态修改脚本作者和脚本创建时间,代码大概如下
5、回到 Unity 工程,创建一个脚本,在打开,就会发现脚本添加了自己设计的文件描述,以及动态了修改了时间和作者,如下图
六、脚本自动添加文件描述(文件头)模板(注意文件名:81-C# Script-NewBehaviourScript.cs.txt)
/****************************************************
文件:#SCRIPTNAME#.cs
作者:#CreateAuthor#
邮箱:https://blog.csdn.net/u014361280
日期:#CreateTime#
功能:Nothing
*****************************************************/
using UnityEngine;
public class #SCRIPTNAME# : MonoBehaviour
{
}
七、关键代码
using System;
using System.IO;
/// <summary>
/// 修改新建脚本中的指定信息
/// </summary>
public class AddScriptInfo : UnityEditor.AssetModificationProcessor
{
/// <summary>
/// 在创建资源的时候执行的函数
/// </summary>
/// <param name="path">路径</param>
private static void OnWillCreateAsset(string path) {
//将.meta后缀屏蔽,避免获取到的是新建脚本时候的 meta 文件
path = path.Replace(".meta", "");
//只对.cs脚本作操作
if (path.EndsWith(".cs") == true) {
//读取该路径下的.cs文件中的所有文本.
//注意,此时Unity已经对脚本完成了模版内容的替换,包括#SCRIPTNAME#也已经被替换为文件名了,读取到的是替换后的文本内容
string str = File.ReadAllText(path);
// 进行关键字的作者和时间获取,并替换
str = str.Replace("#CreateAuthor#", Environment.UserName).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);
}
}
}
八、不用修改Unity安装路径下的模板文件,创建脚本的时候自动添加模板注释文件描述的方法
using System;
using System.IO;
/// <summary>
/// 修改新建脚本中的指定信息
/// </summary>
public class AddScriptInfo : UnityEditor.AssetModificationProcessor
{
private static string fileDescribe =
"/****************************************************\n"+
"文件:#SCRIPTNAME#\n" +
"作者:#CreateAuthor#\n" +
"邮箱:https://blog.csdn.net/u014361280 \n"+
"日期:#CreateTime#\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#", Environment.UserName).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);
}
}
}