【Unity】为脚本添加头部注释

news2024/12/25 0:55:12

1 前言

        默认创建的脚本头部是没有注释的,有时候我们想要在创建脚本时在脚本内容的最前面加上一个注释来标注脚本的相关信息,比如创建者、创建时间、描述等等。那么提供有两种实现方式。

2 方法

2.1 修改Unity的脚本Script

        打开Unity Hub,找到安装的Unity,按下图操作打开本地文件。

然后找到下图目录中的文件,此即为模板文件。

 打开后在首部添加注释内容保存即可。这里就不演示了。

虽然这种方式提供了头部注释,但非常的死板,提供的内容都是固定的,具有较大的局限性。

2.2 使用Editor脚本添加头部注释

        这种方式是提供一个Editor脚本,在我们每创建一个脚本时,都有此Ediotr脚本执行代码在新脚本的头部添加注释内容。这种方式可以提供动态内容到注释中,比如当前时间等。脚本代码如下,创建好后放到Editor文件夹下。

using System.Collections;
using System.IO;
using System;
using UnityEditor;
using Unity.EditorCoroutines.Editor;

namespace Mine.Framework.Editor
{
    public class ScriptCreateInitializer : UnityEditor.AssetModificationProcessor
    {
        //头部文本
        private static string strContent =
            "/*----------------------------------------------------------------\r\n" +
            "* 创建者:(Username)\r\n" +
            "* 电子邮箱:(UserEmail)\r\n" +
            "* 设备名称:(MachineName)\r\n" +
            "* 创建时间:(CreateTime)\r\n" +
            "* 描述:\r\n" +
            "* ----------------------------------------------------------------\r\n" +
            "* 修改人:\r\n" +
            "* 时间:\r\n" +
            "* 修改说明:\r\n" +
            "* 版本:\r\n" +
            "*----------------------------------------------------------------*/\r\n";

        private static void OnWillCreateAsset(string path)
        {
            EditorCoroutineUtility.StartCoroutineOwnerless(AddHeardTextForScript(path));
        }

        private static IEnumerator AddHeardTextForScript(string path)
        {
            //等待一帧,等待文件创建
            yield return null;

            //去除路径中的.meta,为了将xxx.cs.meta这种文件也通过下面的后缀.cs判断(暂时不处理.meta了)
            //path = path.Replace(".meta", "");

            //判断是否是.cs文件
            if (path.ToLower().EndsWith(".cs"))
            {
                //创建头部文本变量
                string heardText = null;
                //替换相关文本
                heardText = strContent
                    .Replace("(Username)", System.Environment.UserName)
                    .Replace("(UserEmail)", "")
                    .Replace("(MachineName)", System.Environment.MachineName)
                    .Replace("(CreateTime)", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                //头部文本+脚本内容
                heardText += File.ReadAllText(path);

                //写入文件
                File.WriteAllText(path, heardText);
                //刷新
                AssetDatabase.Refresh();
            }
        }
    }
}

之后当我们创建新脚本时,其头部就自带注释了。

3 后记

        肯定还有更好的方法,这里只是提供两种比较简单的方法来使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2124288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c/c++ 指针数组

顾名思义就是元素为指针的数组,如定义一个 char *类型的指针数组: char *strName[] {"123","456","789","abc","def" }; 如果是这样初始化的指针数组,c编译是会抛出警告信息的&#xff…

震惊!国产数据库厂商减少了51家!

前面文章我提到国产数据库厂商实际上大部分都不赚钱,我估计国产目前国产数据库厂商利润为正的,目前不超过5家。 而经济寒冬,融资困难,那么对于很多厂商,尤其是全靠融资的数据库厂商来讲,这将变得极其困难。…

Mysql系列-索引简介

索引是排好序的数据结构 1 索引数据结构 hash索引、二叉树、平衡二叉树、B-Tree、BTree 数据结构在线示例:点击跳转 2 索引类型 2.1 聚簇索引 又叫“聚集索引” ,索引和数据存储在一起 2.2 非聚簇索引 又叫“非聚集索引” ,索引和数据分开…

新MyEclipse(比如MyEclipse2019)自动生成PO类和配置文件的方法。

新版的MyEclipse(比如MyEclipse2019)上面myeclipse菜单没有了,选择项目右键菜单myeclipse也没有了。 新的方式是:右键菜单——Configure Facets...,然后选择Install Hibernate Facets,下面一步一步按提示操…

【ACM独立出版】第二届物联网与云计算技术国际学术会议 (IoTCCT 2024,9月27-29)

第二届物联网与云计算技术国际学术会议 (IoTCCT 2024)将围绕“物联网与云计算技术”领域,为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提供一个分享专业经验,扩大专业网络,面对面交流新思想以及展示研究成果的…

机械学习—零基础学习日志(Python做数据分析03)

元组 这里主要讲解了元组的相关语法内容。 可以在数据分析中使用相关的方法。 拆分元组 重点参考来源:

appium历史版本地址链接

appium / Appium.app / Downloads — Bitbucket ios的appium界面图 链接: https://pan.baidu.com/s/1i8BRaZgQA3ImLUhKZjfhiA 提取码: 5c8b

面向对象需求分析

1. 面向对象分析概述 1.1 面向对象基本概念 以对象为中心,以类为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。 1.2 UML统一建模语言 为什么要使用UML UML基本概念 统一建模语言(UML)是一个支持模型化和软…

【苍穹外卖】前端 Day 1

1 Vue 1.1 通过 vue cli 脚手架创建前端工程 1.2 项目结构 1.3 启动项目 VS Code 启动前端项目: npm run serve 注意这里占用端口号 8080 与 java springboot 占用端口号一致,有冲突 serve 是这个名字 终止:ctrl c 修改端口号 2 vue 基本…

JVM面试真题总结(六)

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 解释GC的标记-整理算法及其优点 GC(垃圾收集&#xff…

鸿蒙开发应用图标信息配置

鸿蒙开发配置文件 应用管理里面的应用 手机桌面上的应用信息 学习更多前端知识我已经整理到下面了↓↓↓↓↓↓快去看看吧

Android以及IoT设备传感器软件开发总结

1 传感器选型 1.1 传感器选型 6 axis:Bosch BMI160(比较差),InvenSense MPU6050(DMP),ST LSM6Dxx Acc: Freescale MMA7450L (MicroMachined Accelerometer/MC Multi-Axis, iMX31), Kionix KXSD9…

渣土车检测数据集 2600张 渣土车 带标注 voc yolo

数据集名称: 渣土车检测数据集 数据集规模: 图像数量:2600张标注类型:渣土车检测格式兼容性:支持VOC和YOLO标注格式 数据集内容: 该数据集主要用于训练和评估计算机视觉模型,特别是在渣土车&…

如何本地部署AI智能体平台,带你手搓一个AI Agent

今天分享如何在个人电脑上搭建一个AI智能体平台,可以自定义聊天机器人,设计智能体,编排工作流,知识库,RAG管道等等,还支持本地大模型接入,并对外提供API接口。 如搭建过程有疑问,可…

存储虚拟化

引入-在安装虚拟化VRM界面出现配置数据存储 1.数据存储 还有一处出现数据存储,创建虚拟机时,发放业务虚拟机,不建议选择,autoDS_CNAxx 2.引入FC集群文件系统 传统存储上一个LUN映射给多个CNA使用--集群文件系统VIMS-锁机制--共享存储 3.集群…

工厂方法模式和抽象工厂模式

工厂方法模式 一个工厂只能创建一种产品 工厂方法模式的结构 工厂方法模式包含以下4个角色 Product(抽象产品) ConcreteProduct(具体产品) Factory(抽象工厂) ConcreteFactory(具体工厂…

一篇文章带你看懂住宅代理如何实现内容过滤

在网络安全中,内容过滤是用户隐私保护的重要组成部分,将不良内容拦截在安全网之外是内容过滤的重中之重。在当下,住宅代理作为异军突起的网络安全工具,在内容过滤上有着不错的表现。本文将深入探讨住宅代理如何实现内容过滤&#…

项目小结二()

一.个人信息的界面 这里可以进行用户信息的修改,并渲染数据上去 二.这两天,出现的问题: 1.mybatis中 字段取别名 (还没验证,是否正确) 问题描述:由于实体类中的变量名,与数据库中…

数据权限的设计与实现系列8——前端筛选器组件Everright-filter集成框架开发1

背景 前面我们对筛选器组件进行了功能探索和技术验证,接下来就开始着手集成工作,融入一二三开发平台,打通前后端,最终让数据权限控制功能落地。 整体集成工作比较复杂,我们遵循由易到难的原则,先搭建出完整…

IPv6理论基础

IPV6 地址介绍 地址标识方法 格式 : XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX,128bit,8个16位,16进制 X表示十六进制的一个字符,可以是0 - 9,A -F 字母大小写不敏感,最终设备上显示均为大写 一个地址由8个字段构成…