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

47 篇文章 17 订阅

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

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仙魁XAN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值