Unity-添加头部信息

功能说明

在unity中,创建或者导入脚本时候,为了便于管理,需要添加头部信息。下面是一个示例代码,会在创建或者导入脚本时候添加头部信息。

using System;
using System.IO;
using UnityEditor;
using UnityEngine;

public class ScriptPostprocessor : AssetModificationProcessor
{
    private static string strHeader = "//============================================\r\n"
       + "// 脚本名:ScriptName\r\n"
       + "// 作者:AuthorName\r\n"
       + "// 创建时间:CreateTime\r\n"
       + "// 描述: \r\n"
       + "//==============================================\r\n";

    //创建的新文件
    static void OnWillCreateAsset(string assetPath)
    {
        // 1. 过滤非 .cs 文件
        if (!assetPath.EndsWith(".cs")) return;

        // 2. 排除插件和包中的脚本
        if (assetPath.Contains("Packages/") || assetPath.Contains("Plugins/")) return;

        string fullPath = Path.Combine(Directory.GetCurrentDirectory(), assetPath);

        // 3. 确保文件存在
        EditorApplication.delayCall += () =>
        {
            if (File.Exists(fullPath))
            {
                string originalContent = File.ReadAllText(fullPath);

                // 检查是否已包含头部信息
                if (originalContent.Contains("//============================================")) return;

                // 替换作者名和创建时间
                string header = strHeader
                    .Replace("ScriptName", Path.GetFileNameWithoutExtension(fullPath))
                    .Replace("AuthorName", "yejindeus")
                    .Replace("CreateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));

                string finalContent = header + originalContent;

                File.WriteAllText(fullPath, finalContent);

                AssetDatabase.Refresh();
            }
        };

        //导入的文件
        static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
        {
            // 这里只处理导入的新文件
            foreach (string assetPath in importedAssets)
            {
                // 1. 过滤非 .cs 文件
                if (!assetPath.EndsWith(".cs")) continue;

                // 2. 排除插件和包中的脚本
                if (assetPath.Contains("Packages/") || assetPath.Contains("Plugins/")) continue;

                string fullPath = Path.Combine(Directory.GetCurrentDirectory(), assetPath);

                // 3. 确保文件存在
                EditorApplication.delayCall += () =>
                {
                    if (File.Exists(fullPath))
                    {
                        try
                        {
                            string originalContent = File.ReadAllText(fullPath);

                            // 4. 检查是否已包含头部信息

                            if (originalContent.Contains("//============================================")) return;


                            // 5. 生成头部内容
                            string header = strHeader
                                    .Replace("ScriptName", Path.GetFileNameWithoutExtension(fullPath))
                                    .Replace("AuthorName", "yejindeus")
                                    .Replace("CreateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));

                            // 6. 拼接头部信息和原始内容
                            string finalContent = header + originalContent;

                            // 7. 写回文件
                            File.WriteAllText(fullPath, finalContent);

                            // 刷新资源
                            AssetDatabase.Refresh();
                        }
                        catch (Exception ex)
                        {
                            Debug.LogError($"处理导入的脚本文件 {assetPath} 时发生错误: {ex.Message}");
                        }
                    }

                };
            }
        }
    }
}

示例

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇