欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity 基础 之 新创建脚本的时候自动添加头部格式模板注释/开始处文件描述(文件头规范)

程序员文章站 2022-07-14 11:19:50
...

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 路径下的模板的内容,直接在文件创建的时候把文件描述添加到脚本开始即可;

见第八

 

四、效果预览

Unity 基础 之 新创建脚本的时候自动添加头部格式模板注释/开始处文件描述(文件头规范)

 

五、实现步骤

1、在你的 Unity 安装目录,找到文件 81-C# Script-NewBehaviourScript.cs.txt,排除错的的话,你可以备份一份,如下图

大致路径为 :你的安装目录\Unity\Editor\Data\Resources\ScriptTemplates

Unity 基础 之 新创建脚本的时候自动添加头部格式模板注释/开始处文件描述(文件头规范)

 

2、打开文件进行修改,内容根据自己需要添加即可,参照如下如

Unity 基础 之 新创建脚本的时候自动添加头部格式模板注释/开始处文件描述(文件头规范)

 

3、打开 Unity,新建一个工程,载工程中新建一个 Editor 文件夹,并新建一个脚本,如下图

Unity 基础 之 新创建脚本的时候自动添加头部格式模板注释/开始处文件描述(文件头规范)

 

4、打开脚本进行编辑,添加脚本创建的时候读取文件内容,动态修改脚本作者和脚本创建时间,代码大概如下

Unity 基础 之 新创建脚本的时候自动添加头部格式模板注释/开始处文件描述(文件头规范)

 

5、回到 Unity 工程,创建一个脚本,在打开,就会发现脚本添加了自己设计的文件描述,以及动态了修改了时间和作者,如下图

Unity 基础 之 新创建脚本的时候自动添加头部格式模板注释/开始处文件描述(文件头规范)

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安装路径下的模板文件,创建脚本的时候自动添加模板注释文件描述的方法

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);
        }
    }
}

 

Unity 基础 之 新创建脚本的时候自动添加头部格式模板注释/开始处文件描述(文件头规范)