Unity自定义脚本模板

前言

在使用Unity进行合作开发时有时会看见其他人的脚本有注释说明,瞬间给人高大上的感觉.有两种方式方式可以实现.简单说一下第一种,.不管用的什么IDE里面都有插入代码块或者注释说明功能,在相应地方写好每个脚本手动插入.下面我们来着重说一下第二种方法:修改Unity脚本模板.
在这里插入图片描述

Unity自定义脚本模板

首先找到Unity的默认脚本模板路径在安装目录下Editor\Data\Resources\ScriptTemplates
在这里插入图片描述
打开81-C# Script-NewBehaviourScript.cs.txt文本在这里插入图片描述
左边是修改过的,右边是默认的,点击复制一键复制.

/*
*FileName:          #SCRIPTNAME#
*CompanyName:  #CompanyName#
*Author:            #Author#
*CreateTime:        #CreateTime#
*UnityVersion:      #UnityVersion#
*Version:           #Version#
*Description:
* 
*/

删掉MonoBehaviour即脚本不继承MonoBehaviour.可以有多个模板,添加后需要重启Unity
在这里插入图片描述
效果图
在这里插入图片描述
下面我们接着说,修改默认模板时 我们发现有一些类似#SCRIPTNAME#,#UnityVersion#,#CreateTime#的关键字,这些是创建脚本时实时替换的需要我们另写一个脚本进行处理,下面是代码片段

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class CustomScriptTemplate : UnityEditor.AssetModificationProcessor
{
    /// <summary>  
    /// 此函数在asset被创建完,文件已经生成到磁盘上,但是没有生成.meta文件和import之前被调用  
    /// </summary>  
    /// <param name="newFileMeta">newfilemeta 是由创建文件的path加上.meta组成的</param>  
    public static void OnWillCreateAsset(string newFileMeta)
    {
        string newFilePath = newFileMeta.Replace(".meta", "");
        string fileExt = Path.GetExtension(newFilePath);
        if (fileExt != ".cs")
        {
            return;
        }
        //注意,Application.datapath会根据使用平台不同而不同  
        string realPath = Application.dataPath.Replace("Assets", "") + newFilePath;
        string scriptContent = File.ReadAllText(realPath);

        //这里实现自定义的一些规则  
        scriptContent = scriptContent.Replace("#SCRIPTNAME#", Path.GetFileName(newFilePath));
        scriptContent = scriptContent.Replace("#CompanyName#", "");
        scriptContent = scriptContent.Replace("#Author#", "ShangChao");
        scriptContent = scriptContent.Replace("#Version#", "1.0");
        scriptContent = scriptContent.Replace("#UnityVersion#", Application.unityVersion);
        scriptContent = scriptContent.Replace("#CreateTime#", System.DateTime.Now.ToString("yyyy-MM-dd-HH:mm:ss"));

        File.WriteAllText(realPath, scriptContent);
    }
}

下载链接

猜你喜欢

转载自blog.csdn.net/weixin_42066580/article/details/106791679