Unity功能——创建新脚本时自动添加自定义头注释

声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改。


文字标题(同文字大标题相同)


文章目录


一.开发环境

unity 无限制

VS 无限制


二.问题描述

为新创建的 C# 脚本自动添加自定义的头部注释‌,例如包含作者、创建时间、版本等信息,以统一项目代码规范。


三.解决方案原理及代码

实现原理:

继承UnityEditor.AssetModificationProcessor类实现OnWillCreateAsset()方法,会在添加资源时调用.在内部实现对应头注释信息

对应代码:


效果展示

csharp 复制代码
using System;
using System.IO;

/// <summary>
/// 添加头部注释
/// </summary>
public class AddScriptInfo : UnityEditor.AssetModificationProcessor
{
    private static string fileDescribe =
        "/********************************************************************\n" +
        "* 版本声明: v1.0.0\n" +
        "* 类 名 称:#SCRIPTNAME#\n" +
        "* 作者名称:#CreateAuthor#\n" +
        "* 创建日期:#CreateTime#\n" +
        "* 对应U3D:通用无限制\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#", "明哲").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);
        }
    }
}

*注意事项:*放Editor文件夹下

四.总结

保持饥饿,保持愚蠢.

这世界唯一能够相信的就是你付出的努力在这里插入图片描述

和你走过的路.

相关推荐
yangmu32033 小时前
《星露谷物语》MOD配置与实战安装综合指南
游戏·游戏引擎·游戏程序
xcLeigh4 小时前
Unity基础:Game视图详解——游戏预览、分辨率模拟与性能显示
游戏·unity·游戏引擎·音频·视频·game·play模式
ZJU_fish19964 小时前
全局光照/阴影的几个常见问题
游戏引擎·图形渲染
IT·陈寒5 小时前
Superpowers 游戏引擎核心应用场景与落地指南
游戏引擎
xcLeigh14 小时前
Unity基础:Scene视图操作完全指南——视角控制、物体选择与场景导航
unity·游戏引擎·scene·试图·场景导航
mxwin18 小时前
Unity Shader exp 函数的算法与渲染应用
算法·unity·游戏引擎·shader
WarPigs1 天前
AB包自定义打包工具
unity
叶帆18 天前
【YFIOs】用C#开发硬件之设备上云
开发语言·unity·c#
久数君18 天前
AI三维建模工具“造形家”:地理场景三维化的高效解决方案
unity·glb·ai算法·ai三维建模工具·地图框选·造形家·城市建筑模型
会思考的猴子19 天前
Unity VFX 属性 Postion 和 TargetPostion
unity